[英]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.