日期计算

/**
* 计算两个日期相差天数
*
* @param startDate
*            开始日期,格式为yyyyMMdd,不能有时分秒
* @param endDate
* @return
*/
public static long dateMinus(Date startDate, Date endDate) {
return (endDate.getTime() - startDate.getTime())
/ (24 * 60 * 60 * 1000);
}



/**
* 计算日期加指定天数后所得日期
*
* @param date
*            原始日期
* @param day
*            所加天数(负数时为减)
* @return
*/
public static Date sumDate(Date date, int day) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)
+ day);

return calendar.getTime();
}




/**
* 计算年的每月天数
* @param year
* @return
*/
public int[] getMonthDay(int year){
int[] days=new int[]{31,29,31,30,31,30,31,31,30,31,30,31};
if(year%4==0){
days[1]=29;
}else{
days[1]=28;
}
return days;
}



/** 
    * 功能: 当月的天数. 
    * 输入: month = 给出的该月的某一个时间. 
    * 输出:  这个月有多少天. 
    * 
    * @param time 
    * @return 
    */ 
   public static int DaysInMonth(Date time){  
       int month=time.getMonth();  
       int year=time.getYear();  
       int DaysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};  
       if(month==1){  
           if(IsLeapYear(year+1900))  
               DaysInMonth[1]= DaysInMonth[1]+1;  
       }  
       return DaysInMonth[month];  
   }  

public static boolean IsLeapYear(int year){  
      if ((year % 100) == 0) return((year % 400) == 0);  
      return ((year % 4) == 0);  
   } 

你可能感兴趣的:(日期)