java獲取日期差以及幾天前和幾天後的時間

Null指標發表於2018-12-19
/**
* 日期差天數、小時、分鐘、秒陣列
* @param startDate
* @param endDate
* @return
*/
public static long[] getDisTime(Date startDate, Date endDate){
    long timesDis = Math.abs(startDate.getTime() - endDate.getTime());
    long day = timesDis / (1000 * 60 * 60 * 24);
    long hour = timesDis / (1000 * 60 * 60) - day * 24;
    long min = timesDis / (1000 * 60) - day * 24 * 60 - hour * 60;
    long sec = timesDis / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60;
    return new long[]{day, hour, min, sec};
}

/**
* 日期差天數
* @param startDate
* @param endDate
* @return
*/
public static long getDisDay(Date startDate, Date endDate){
    long[] dis = getDisTime(startDate, endDate);
    long day = dis[0];
    if (dis[1] > 0 || dis[2] > 0 || dis[3] > 0) {
    	day += 1;
    }
    return day;
}

/** 
* 得到幾天前的時間 
* @param date
* @param day 
* @return 
*/  
public static Date getDateBefore(Date d,int day){  
	Calendar now =Calendar.getInstance();  
	now.setTime(d);  
	now.set(Calendar.DATE,now.get(Calendar.DATE)-day);  
	return now.getTime();  
}  

/** 
* 得到幾天後的時間 
* @param date
* @param day 
* @return 
*/  
public static Date getDateAfter(Date d,int day){  
    Calendar now =Calendar.getInstance();  
    now.setTime(d);  
    now.set(Calendar.DATE,now.get(Calendar.DATE)+day);  
    return now.getTime();  
} 
複製程式碼

相關文章