2010-04-12 115 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的一個簡單而強大的替代方法,並且具有簡單的方法來添加和減少日期和年份等等。