2015-11-20 47 views
4

我想比較兩個日期與今天的日期。是之後,是否最好呢? isAfter和isBefore無法檢測到一天的變化。比方說:isAfterBefore Java 8 LocalDateTime一天不同

If today is 20 Nov. I put in range 20 Nov-21 Nov. 

if(todayDate.isAfter(startDate) && todayDate.isBefore(endDate)) 
{ 
    // task 
} 

此代碼不會檢測到今天在範圍內。 OR/||不適用,因爲我有一組要測試的範圍。對此有何想法?

+0

爲什麼它不能檢測到? –

+1

爲什麼不添加'||'測試'isToday()' – jiaweizhang

+3

@SotiriosDelimanolis這兩個檢查都是'strict' – jiaweizhang

回答

6

這將解決這個問題:只需添加一個檢查是否今天的日期,要麼,你將不得不開始或結束日期來實現自己

if((todayDate.isAfter(startDate) && todayDate.isBefore(endDate)) || (todayDate.isEqual(startDate) || todayDate.isEqual(endDate)) 
{ 
    // task 
} 

這是因爲isAfterisBefore都是嚴格。

編輯:一個更好更合理的解決方案:

if(!todayDate.isAfter(endDate) && !todayDate.isBefore(startDate)) 
{ 
    // task 
} 

通過否定isAfter,就結束日期或之前。

通過否定isBefore,它變爲startDate或之後。

+0

謝謝!第一個代碼運行得很好。第二個代碼似乎不工作^^' – SkyvrawleR

+2

對不起,您必須切換第二個代碼中的開始日期和結束日期 – jiaweizhang

+0

第二個代碼現在正常工作^ _ ^ – SkyvrawleR

相關問題