/**
* 增加月份
*
* @param date 日期
* @param count 月份数
*/
public static Date addMonths(Date date, int count) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, count);
return calendar.getTime();
}
/**
* 增加天数
*
* @param date 日期
* @param days 天数
*/
public static Date addDays(Date date, int days) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, days);
return calendar.getTime();
}
/**
* 增加小时
*
* @param date 日期
* @param count 小时数
*/
public static Date addHours(Date date, int count) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, count);
return calendar.getTime();
}
/**
* 增加分钟
*
* @param date 日期
* @param count 分钟数
*/
public static Date addMinutes(Date date, int count) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MINUTE, count);
return calendar.getTime();
}
/**
* 返回两个时间间隔内的所有日期
*
* @param dateStart eg:2017-1-1
* @param dateEnd eg:2019-9-25
* @return List<String>
*/
public static List<String> getTwoDaysDayToString(String dateStart, String dateEnd) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<String> dateList = new ArrayList<String>();
try {
//转换成Date
Date dateOne = sdf.parse(dateStart);
Date dateTwo = sdf.parse(dateEnd);
//转换为Claender
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateOne);
dateList.add(sdf.format(dateOne));
//测试此日期是否早于指定日期。
while (calendar.getTime().before(dateTwo)) {
calendar.add(Calendar.DAY_OF_MONTH, +1);
dateList.add(sdf.format(calendar.getTime()));
}
} catch (Exception e) {
e.printStackTrace();
}
return dateList;
}
/**
* 计算相差多少年
*/
public static Integer howManyYears(Date param, Date param1) {
System.out.println(param);
System.out.println(param1);
Calendar calendar = Calendar.getInstance();
calendar.setTime(param);
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(param1);
int year1 = calendar1.get(Calendar.YEAR);
System.out.println(year1);
return year1 - year;
}
/**
* 相差月份
*/
public static Integer monthDifference(Date param, Date param1) {
final Integer yerMoth = 12;
Calendar calendar = Calendar.getInstance();
calendar.setTime(param1);
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(param);
if (calendar.get(Calendar.YEAR) == calendar1.get(Calendar.YEAR)) {
return calendar.get(Calendar.MONTH) - calendar1.get(Calendar.MONTH);
} else {
return ((calendar.get(Calendar.YEAR) - calendar1.get(Calendar.YEAR)) * yerMoth)
- (calendar1.get(Calendar.MONTH) - calendar.get(Calendar.MONTH))
;
}
}
/**
* 相差天数
*/
public static Integer daysDifference(Date param, Date param1) {
int days = (int) ((param1.getTime() - param.getTime()) / (1000 * 3600 * 24));
return days;
}
/**
* 相差小时
*/
public static Long minutesDifference(Date param, Date param1) {
Long days = (Long) ((param1.getTime() - param.getTime()) / (1000 * 3600));
return days;
}