java 判断两个日期是否距离整月

``
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
import java.text.SimpleDateFormat;
public class DateUtils{
public static long monthsBetween(LocalDate start, LocalDate end) {
long months = ChronoUnit.MONTHS.between(start, end);
return months;
}

public static boolean isWholeMonthBetween(Date start, Date end) {
    if (start == null || end == null) {
        return false;
    }
    if (start.getTime() == end.getTime()){
        return true;
    }
    if (end.getTime() < start.getTime()) {
        Date tempDate = start;
        start = end;
        end = tempDate;
    }
    LocalDate date1 = start.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    LocalDate date2 = end.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    Long months = monthsBetween(date1, date2);
    System.out.println(months);
    Calendar cal1 = Calendar.getInstance();
    cal1.setTime(getDateOnlyYMD(start));
    Calendar cal2 = Calendar.getInstance();
    cal2.setTime(getDateOnlyYMD(end));
    //此处用-法才测试正常 + 平年闰年问题  其他方法欢迎修正,
    cal2.add(Calendar.MONTH,0-months.intValue());
    return cal2.getTimeInMillis() == cal1.getTimeInMillis();
}
/**
 * 获得给定时间的去掉时分秒信息数据
 */
public static Date getDateOnlyYMD(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    // 将时分秒,毫秒域清零
    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    return cal.getTime();
}
}
判断两个日期是否相差了整月份的java代码,java 8以上版本。欢迎指正。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zihua2005

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值