2010-04-12 68 views

回答

13

Calendar.DAY_OF_YEAR是利用

Calendar calendar = Calendar.getInstance(); 
calendar.setTime(givenDate); 
calendar.add(Calendar.YEAR, -1); 
+2

实际上,calendar.add(Calendar.DAY_OF_YEAR,n)和calendar.add(Calendar.DATE,n)是相同的。见http://stackoverflow.com/questions/2506082/add-more-than-30-days-with-calendars-add-method-in-java/2506096#2506096 – 2010-04-12 16:41:04

1

减去天

您还可以减去一年(以在考虑到闰年),我不认为它会作出不同的正确方法,但我会使用Calendar.DAY_OF_YEAR作为该字段。

4

这是减去天数的正确方法。

请注意,365天并不总是等于一年,因为闰日。 calendar.add(Calendar.YEAR, -1)会正确减去一年。

您也可以使用Joda Time -library而不是java.util.Datejava.util.Calendar。乔达时间是处理时间和日期的更好的API。

0

如果你想严格减去365天,那么是的,这会做到这一点。但是,如果你尝试了多年,那可能是因为闰年而不起作用的。

0

退房Veyder-time。它是java.util.Calendar的一个简单而强大的替代方法,并且具有简单的方法来添加和减少日期和年份等等。