簡體   English   中英

使用Joda,如何確定給定日期是否在時間x和比x早3小時的時間之間?

[英]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,因為checkTimesomeTime之前超過3小時。

如果someTime設置為15:00並且checkTime設置為15:15,則它應該返回false,因為checkTimesomeTime之后。

經過一些游戲,我發現這很好看:

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因為沒有isBeforeOrEqualisAfterOrEqual - 但你可以使用compareTo來表示任何關系。

我懷疑這只是你以后的minusHours :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM