JAVA7,8两个日期对比是否跨过几个月份

public static void main(String[] args) {

// 示例:假设有两个时间点 t1 和t2

        String t1 ="2023-01-01";

        String t2 ="2023-02-28";

        if (isMoreThanTwoMonths(t1, t2) >=2) {

System.out.println("=======超过两个月了哦==========");

        }else {

System.out.println("=======没有超过两个月==========");

        }

}

////java7写法

    public static int isMoreThanTwoMonths(String startDate, String endDate) {

SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");

        try {

Calendar cal1 = Calendar.getInstance();

            cal1.setTime(sdf.parse(startDate));

            Calendar cal2 = Calendar.getInstance();

            cal2.setTime(sdf.parse(endDate));

            return (cal2.get(Calendar.YEAR) - cal1.get(Calendar.YEAR)) *12 + cal2.get(Calendar.MONTH) - cal1.get(Calendar.MONTH);

        }catch (ParseException e) {

e.printStackTrace();

        }

return 0;

    }

//java8写法

    public static boolean isMoreThanTwoMonths(String startDate, String endDate) {

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        try {

LocalDate date1 = LocalDate.parse(startDate, formatter);

            LocalDate date2 = LocalDate.parse(endDate, formatter);

            return date2.isAfter(date1.plusMonths(2));

        }catch (Exception e) {

return false;

        }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容