计算账单逾期几天 ,还有几天缴费


    /**
     *
     *    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
今日推荐