Java日期第一天最后一天

 同学叫我帮他写个小util类,我以前也没弄过,写了先存这儿,以后估计自己也得用。

 

public   abstract   class  DateUtils  {

    
/**
     * 取得日期所在周的第一天
     * 
@param date
     * 
@return
     
*/

    
public static Date getFirstWeekDay(Date date) {
    initCalendar(date);
    gc.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    
return gc.getTime();
    }

    
    
/**
     * 取得日期所在周的最后一天
     * 
@param date
     * 
@return
     
*/

    
public static Date getLastWeekDay(Date date) {
    initCalendar(date);
    gc.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    
return gc.getTime();
    }

 
    
/**
     * 取得日期所在月的最后一天
     * 
@param date
     * 
@return
     
*/

    
public static Date getFirstMonthDay(Date date) {
    initCalendar(date);
    
int dayOfMonth = gc.get(Calendar.DAY_OF_MONTH);
    gc.add(Calendar.DAY_OF_MONTH, 
1 - dayOfMonth);
    
return gc.getTime();
    }

    
    
/**
     * 取得日期所在月的最后一天
     * 
@param date
     * 
@return
     
*/

    
public static Date getLastMonthDay(Date date) {
    initCalendar(date);
    
int dayOfMonth = gc.get(Calendar.DAY_OF_MONTH);
    
int maxDaysOfMonth = gc.getActualMaximum(Calendar.DAY_OF_MONTH);
    gc.add(Calendar.DAY_OF_MONTH, maxDaysOfMonth 
- dayOfMonth);
    
return gc.getTime();
    }

    
    
/**
     * 取得日期所在旬的最后一天
     * 
@param date
     * 
@return
     
*/

    
public static Date getFirstTenDaysDay(Date date) {
    initCalendar(date);
    
int dayOfMonth = gc.get(Calendar.DAY_OF_MONTH);
    
if(dayOfMonth <= 10{
        gc.set(Calendar.DAY_OF_MONTH, 
1);
    }
 else if(dayOfMonth > 20{
        gc.set(Calendar.DAY_OF_MONTH, 
21);
    }
 else {
        gc.set(Calendar.DAY_OF_MONTH, 
11);
    }

    
return gc.getTime();
    }

    
    
/**
     * 取得日期所在旬的最后一天
     * 
@param date
     * 
@return
     
*/

    
public static Date getLastTenDaysDay(Date date) {
    initCalendar(date);
    
int dayOfMonth = gc.get(Calendar.DAY_OF_MONTH);
    
if(dayOfMonth <= 10{
        gc.set(Calendar.DAY_OF_MONTH, 
10);
    }
 else if(dayOfMonth > 20{
        gc.set(Calendar.DAY_OF_MONTH, gc.getActualMaximum(Calendar.DAY_OF_MONTH));
    }
 else {
        gc.set(Calendar.DAY_OF_MONTH, 
19);
    }

    
return gc.getTime();
    }

    
    
private static void initCalendar(Date date) {
    
if(date == null{
        
throw new IllegalArgumentException("argument date must be not null");
    }

    
    gc.clear();
    gc.setTime(date);
    }

    
    
private static GregorianCalendar gc = null;
    
static {
    gc 
= new GregorianCalendar(Locale.CHINA);
    gc.setLenient(
true);
    gc.setFirstDayOfWeek(Calendar.MONDAY);
    }

    
    
/**
     * 
@param args
     
*/

    
public static void main(String[] args) {
    Calendar c 
= Calendar.getInstance();
//    c.set(Calendar.MONTH, 7);
//    c.set(Calendar.DAY_OF_MONTH, 9);
    Date date = c.getTime();
    
    System.out.println(
"getFirstWeekDay = " + getFirstWeekDay(date));
    System.out.println(
"getLastWeekDay = " + getLastWeekDay(date));
    System.out.println(
"getFirstMonthDay = " + getFirstMonthDay(date));
    System.out.println(
"getLastMonthDay = " + getLastMonthDay(date));
    System.out.println(
"getFirstTenDaysDay = " + getFirstTenDaysDay(date));
    System.out.println(
"getLastTenDaysDay = " + getLastTenDaysDay(date));
    }

}

你可能感兴趣的:(Java日期第一天最后一天)