【发布时间】:2016-11-22 13:41:14
【问题描述】:
我正在使用Joda-Time,我想检查特定日期是否不是一年中的最后一天(换句话说,日期不应该是 31/12/XXXX)。它应该适用于任何一年。
为了实现这个检查,我做了这样的事情:
DateTime dataSecondoMovimento = new DateTime(mappaQuote.get(2).getDatariferimentoprezzo());
if(!(dataSecondoMovimento.getMonthOfYear() == 12 && dataSecondoMovimento.getDayOfMonth() == 31)) {
System.out.println("It is not the end of year !!!");
}
所以基本上我正在检查月份是否不是 12 月以及日期是否不是 31(两者都必须为真,因为它不是一年中的最后一天)。我认为这应该可以正常工作。
我的问题:Joda-Time 是否提供了一种更简洁的方法?是否存在检查特定日期是否为一年中最后一天的方法?
【问题讨论】:
-
恕我直言,你的方式是最实用的。我唯一想到的是
dataSecondoMovimento.plusDays(1).getDayOfYear() == 1,它更短但几乎没有更有效:) -
!(month() == 12 && day() == 31)似乎也不那么直观。month() != 12 && day() != 31乍一看更直观。然后我就把它考虑到它自己的方法中来阅读if(isLastDayOfYear(date))
标签: java date datetime jodatime