[英]Using Joda, How do I determine if a given date is between time x and a time 3 hours earlier than x?
使用Joda时间并获得类似以下行为的最简单方法是什么:
public boolean check( DateTime checkTime )
{
DateTime someTime = new DateTime(); //set to "now" for sake of example
return checkTime.isBefore( someTime ) && checkTime.notMoreThanThreeHoursBefore( someTime );
}
因此,如果someTime
设置为15:00并且checkTime
设置为12:15,则应返回true。
如果someTime
设置为15:00并且checkTime
设置为11:45,则它应该返回false,因为checkTime
在someTime
之前超过3小时。
如果someTime
设置为15:00并且checkTime
设置为15:15,则它应该返回false,因为checkTime
在someTime
之后。
经过一些游戏,我发现这很好看:
return new Interval( someTime.minusHours( 3 ), someTime ).contains( checkTime );
简单:
DateTime someTime = new DateTime();
DateTime earliest = someTime.minusHours(3);
if (earliest.compareTo(checkTime) <= 0 && checkTime.compareTo(someTime) < 0)
我使用了compareTo
因为没有isBeforeOrEqual
或isAfterOrEqual
- 但你可以使用compareTo
来表示任何关系。
我怀疑这只是你以后的minusHours
:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.