我刚开始学习Java,而且我遇到了非常困难的时候,与C相比,它看起来似乎很复杂。 我必须编写一个程序来检测当周的当天,然后找到所有剩余的相同日期直到特定日期。它必须按月打印出来。所以现在就说它的2016/3/9,即周三。具体日期是2016/4/8。它应该打印出来: 2016/3:16,23,30 2016/4:6
我应该使用java.util.date和java.util.calendar等。谢谢你的回答。
答案 0 :(得分:4)
仅供参考,java.util.Date /。Calendar类可怕。善意的,他们的设计很差,令人困惑,也很麻烦。因此,不要通过这些类判断Java或您的学习。实际上,完全避免使用这些类。
旧的类太糟糕了,Sun / Oracle放弃了它们,用java.time框架中的新类取代它们。 java.time框架内置于Java 8及更高版本中。请参阅Tutorial。
LocalDate
class 您希望LocalDate
类代表仅限日期而没有时间和没有时区。
您可以通过解析字符串或指定年,月和日的数字来实例化LocalDate
。
LocalDate localDate = LocalDate.parse( "2016-04-08" );
LocalDate localDate = LocalDate.of( 2016 , 4 , 8 );
请注意,即使结果LocalDate
在内部没有存储时区,确定'今天'也需要时区。对于任何特定时刻,日期可能因时区而异。巴黎的新日早些时候比蒙特利尔更新。
LocalDate today = LocalDate.now( ZoneId.of( "America/Montreal" ) );
添加一周以获得具有相同星期几的下一个日期。
LocalDate next = today.plusWeeks( 1 );
LocalDate
将LocalDate
个对象与isBefore
,isAfter
和isEqual
方法进行比较。
我会让你把它们放在一起完成你的家庭作业。
此外,您可以向LocalDate
询问DayOfWeek
个对象。该对象具有方便的方法,例如getDisplayName
,用于星期几的本地化名称。