2015-11-20 49 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

相关问题