我有這樣的代碼在這裏:添加/刪除從日期代碼修復天需要
public static String AddRemoveDays(String date, int days) throws ParseException
{
SimpleDateFormat k = new SimpleDateFormat("yyyyMMdd");
Date d = k.parse(date);
d = new Date(d.getTime() + days*86400000);
String time = k.format(d);
return time;
}
它以字符串形成「年月日」,並增加了INT天吧。它應該工作,然後日子是消極的 - 那麼他會減少日期的日子。當它是數學時,它返回String形式的「yyyyMMdd」。
至少這是它應該做的。它適用於小數字,但如果我嘗試添加(或刪除),例如,一年(365或-365),則會返回較爲奇怪的日期。
有什麼問題? 我應該做一個完整的另一種方式?
你是什麼意思是「奇怪的日期」?請注意,添加365天不一定與添加一年相同(請參閱:步驟年)。 – npe
你能提供有問題的日期嗎?你在測試什麼日期?不是每年都有365天,不要忘記閏年(2012年是)。 另外,我會推薦使用'Calendar'類,因爲'Date'現在在較新的Java中已被棄用。一個有用的方法是'Calendar.getActualMaximum()',它將根據當前年份是否爲閏年返回一年中的正確天數。此外,'日曆'與其內部的數學更聰明,並會增加日期時將滾動各種值。 – gnomed
我知道這不是,它只是一個例子,這就是爲什麼我要用毫秒計算。 嘗試參數(「20120605」,365)或(「20120605」,45)。 我怎樣才能做到這一點日曆? – Karlovsky120