前言
本类所有方法均已加入cntool
,可以选择使用本类方法也可以选择使用cntool
以maven坐标方式调用,cntool
介绍👉cntool介绍
1.计算两个时间相差多少天/小时/分钟
/**
* 计算两个时间相差多少天/小时/分钟
*
* @param endDate 结束时间
* @param beginDate 开始时间
* @return 差多少天/小时/分钟
*/
public static long getDatePoor(Date endDate, Date beginDate) {
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
// long ns = 1000;
// 获得两个时间的毫秒时间差异
long diff = endDate.getTime() - beginDate.getTime();
// 计算差多少天
long day = diff / nd;
// 计算差多少小时
long hour = diff % nd / nh;
// 计算差多少分钟
long min = diff % nd % nh / nm;
return day;
}
3.年份往前/后推
/**
* 年份往前/后推
*
* @param year 年份
* @param pushNum 往前/后推多少
* @param isBefore 控制往前还是往后推 true往前 false往后
* @return 往前推之后每个年份的数组
*/
public static String[] pushYear(String year, Integer pushNum, Boolean isBefore) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
String[] resultYear = new String[pushNum];
Calendar cal = Calendar.getInstance();
//设置开始年份
year = StringUtils.isNotBlank(year) ? year : sdf.format(new Date());
try {
cal.setTime(sdf.parse(year));
for (int i = 0; i < pushNum; i++) {
//通过isBefore控制往前推还是往后推
cal.add(Calendar.YEAR, isBefore ? -i : i);
resultYear[i] = sdf.format(cal.getTime());
cal.setTime(sdf.parse(year));
}
} catch (ParseException e) {
e.printStackTrace();
}
return resultYear;
}