java 判断是否在两个日期之内,如何检查当前日期是否在java中两个重复发生的日期之间?...

I am trying to create an app, and got stuck at calculating if today is in the school year. The user enters two dates, with no year, that reoccur annually. These are the start and end dates of the school year.

I want to check if the current date, is between these two, even if it overlaps two years. So if school starts on November, and ends on june, if today is January 22nd, it should return true. But if its july, it should return false.

I did find this question: Php - work out what academic year it is, But it works on academic years, which don't have a holiday.

BTW I have joda time, if that helps.

Thanks in advance.

解决方案

Well, I thought for a bit and found a few solutions, but this seemed simplest.

private boolean isInSchoolYear(DateTime now, DateTime schoolYearStart, DateTime schoolYearEnd){

int thisYear = now.getYear();

schoolYearStart = schoolYearStart.withYear(thisYear);

schoolYearEnd = schoolYearEnd.withYear(thisYear);

if(schoolYearStart.isBefore(schoolYearEnd)){

return new Interval(schoolYearStart, schoolYearEnd).contains(now);

}

else{

return !(new Interval(schoolYearEnd, schoolYearStart).contains(now));

}

}

This way it works both if the school year overlaps 2 years or 1.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值