目錄
Java 日期/時間計算加法和減法變得簡單
輕鬆使用 Java計算日期/時間的加/減介紹一個範例程式來執行此操作。
範例程式的特點如下。
- 傳回目前或任意日期/時間加上或減去指定時間量的結果。
- 如果指定正數,則時間將提前;如果指定負數,則時間向後。
例如,從目前日期和時間算起 10 天前。計算如果是這樣,則以下內容將適用。
日曆 cal = addMonth(-10); - 您可以為年、月、日、小時、分鐘、秒和毫秒時間欄位設定任意時間量。
另外,相對於指定時間計算如果是這樣,請將 Calendar 類別作為參數傳遞。
例如,以下程式碼會將指定的 Calendar 實例提前一年。
日曆 cal = add(“指定日曆”,1,0,0,0,0,0,0); - 如果每個時間欄位的值超出其範圍,則遞增或遞減下一個較大的時間欄位。
例如,以下指令會將目前時間向前移動 1 小時 5 分鐘。
日曆 cal = addMinute(65);
範例程式
執行
在範例程式中,作為返回值計算後由於我們可以獲得保存日期的 java.util.Calendar 對象,因此我們使用 java.util.Calendar#getTime() 方法將其轉換為 java.util.Date,並使用 java.text.SimpleDateFormat 將其轉換為日期字串。
◆執行範例
public static void main(String[] args) { SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); System.out.println("當前日期/時間 = "+ f.format( add (null,0,0,0,0,0,0,0).getTime())); System.out.println("1 年內的日期/時間= "+ f.format(addYera(1) .getTime ())); System.out.println("1 個月前的日期/時間= "+ f.format(addMonth(-1).getTime())); System.out.println("3 小時後的日期/時間= "+ f.format(addHour(3).getTime())); System.out.println("日期/時間30 小時前= "+ f.format(addHour(-30).getTime () )); System.out.println("40 分鐘後的日期/時間= "+ f.format(addMinute(40).getTime())); System.out.println("80 秒後的日期/時間= "+ f.format (addMinute(40).getTime())); Time = "+ f.format(addSecond(80).getTime())); System.out.println("1 個月前4 天的日期/時間= "+ f.format(add(null,0, -1,4,0,0,0,0).getTime())); }
◆執行結果
目前日期和時間是 2008/03/25 00:00:00。
目前日期/時間= 2008/03/25 00:00:00 一年後的日期/時間= 2009/03/25 00:00:00 一個月前的日期/時間= 2008/02/25 00:00 : 00 日期3 小時後的日期和時間= 2008/03/25 03:00:00 30 小時前的日期和時間= 2008/03/23 18:00:00 40 分鐘後的日期和時間= 2008/03/ 25 00:40:00 80 秒後的日期和時間 = 2008/03/25 00:01:20 1 個月前 4 天的日期和時間 = 2008/02/29 00:00:00
*2008年是閏年,所以2月的最後一天是29號。
此範例程式適用於 Chat&Messenger。日曆/日程管理功能”實際使用過。