/**
*
* nowDate 为当前时间
* endDate 为账单日
* 计算账单是否逾期几天
* 计算账单还有几天缴费
*
* 2023-09-09 到 2023-09-06 差 -3.0天
* 2023-09-09 到 2023-09-07 差 -2.0天
* 2023-09-09 到 2023-09-08 差 -1.0天
* 2023-09-09 到 2023-09-09 差 1.0天
* 2023-09-09 到 2023-09-10 差 2.0天
* 2023-09-09 到 2023-09-11 差 3.0天
* 2023-09-09 到 2023-09-12 差 4.0天
*
*/
public static Double getDays(Calendar nowDate, Calendar endDate) {
String nowDateStr = DateUtil.formatYyyyMMdd(nowDate.getTime());
String endDateStr = DateUtil.formatYyyyMMdd(endDate.getTime());
System.out.print( nowDateStr + " 到 " + endDateStr+" 差 ");
Date nowDateDate = DateUtil.parseYyyyMMdd(nowDateStr);
Date endDateDate = DateUtil.parseYyyyMMdd(endDateStr);
nowDate.setTime(nowDateDate);
endDate.setTime(endDateDate);
long nowDateMillis = nowDate.getTimeInMillis();
long endDateMillis = endDate.getTimeInMillis();
Long day = 0L;
if(nowDateMillis < endDateMillis){
//开始时间在结束之前为正数 当天算1天 2-27截至 2-26到2-27算2天 2-27到2-27算1天
//日期是2-26,到期时间是 2-26 24:00:00
endDate.add(Calendar.DAY_OF_YEAR, 1);
day = cn.hutool.core.date.DateUtil.between(nowDate.getTime(), endDate.getTime(), DateUnit.DAY);
}else{
//开始时间在结束之后为负数 2-26截至 2-26到2-27算1天 逾期1天
day = cn.hutool.core.date.DateUtil.between(nowDate.getTime(), endDate.getTime(), DateUnit.DAY);
day = 0 - day;
}
if(day == 0L){
day = 1L;
}
System.out.println(day.doubleValue()+"天");
return day.doubleValue();
}
public static void main(String[] args) throws ParseException {
Calendar nowDate = Calendar.getInstance();
nowDate.setTime(DateUtil.parseYyyyMMddHHmmss("2023-09-09 11:10:01"));
Calendar endDate0 = Calendar.getInstance();
endDate0.setTime(DateUtil.parseYyyyMMdd("2023-09-06"));
Calendar endDate1 = Calendar.getInstance();
endDate1.setTime(DateUtil.parseYyyyMMdd("2023-09-07"));
Calendar endDate2 = Calendar.getInstance();
endDate2.setTime(DateUtil.parseYyyyMMdd("2023-09-08"));
Calendar endDate3 = Calendar.getInstance();
endDate3.setTime(DateUtil.parseYyyyMMdd("2023-09-09"));
Calendar endDate4 = Calendar.getInstance();
endDate4.setTime(DateUtil.parseYyyyMMdd("2023-09-10"));
Calendar endDate5 = Calendar.getInstance();
endDate5.setTime(DateUtil.parseYyyyMMdd("2023-09-11"));
Calendar endDate6 = Calendar.getInstance();
endDate6.setTime(DateUtil.parseYyyyMMdd("2023-09-12"));
Double days0 = getDays(nowDate, endDate0);
Double days1 = getDays(nowDate, endDate1);
Double days2 = getDays(nowDate, endDate2);
Double days3 = getDays(nowDate, endDate3);
Double days4 = getDays(nowDate, endDate4);
Double days5 = getDays(nowDate, endDate5);
Double days6 = getDays(nowDate, endDate6);
System.out.println();
}
计算账单逾期几天 ,还有几天缴费
猜你喜欢
转载自blog.csdn.net/qq_27327261/article/details/132348694
今日推荐
周排行