java获取日期差以及几天前和几天后的时间

/**
* 日期差天数、小时、分钟、秒数组
* @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();  
} 
复制代码

转载于:https://juejin.im/post/5c19edd8518825741e7c192b

你可能感兴趣的:(java获取日期差以及几天前和几天后的时间)