JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 17.如何對兩個日期做相減? [Re:swanky]
swanky

暴走熊

版主

發文: 461
積分: 9
於 2003-08-21 09:22 user profilesend a private message to usersend email to swankyreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
作者: contagious (傳染) 看板: java
標題: [合作翻譯]Java新手 17
時間: Wed Jun 19 01:52:18 2002

17.如何對兩個日期做相減?

做日期相減的一個有效的方法是先將日期轉成時間,再來做相減的動作。先產生兩個
Calender這個類別的 instances來表示日期,再用他們產生兩個Date 物件表示時間(這個
時間是以milliseconds來表示)。將兩個時間相減,再將結果除以一天有多少
milliseconds,就可以得多兩個日期相差多少天。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.*;
 
public class DateSubtraction{
    public static void main(String [] args){
        Calendar cal = Calendar.getInstance();
        cal.set(2000, Calendar.AUGUST, 24);
        Date d1 = cal.getTime();
        cal.set(2000, Calendar.AUGUST, 28);
        Date d2 = cal.getTime();
        long daterange = d2.getTime() - d1.getTime();
        long time = 1000*3600*24; //A day in milliseconds
        System.out.println(daterange/time);
    }
}


更多有關 Date 和 Calender 的資訊請看:
Class Calender
http://java.sun.com/j2se/1.3/docs/api/java/util/Calendar.html
Class Date
http://java.sun.com/j2se/1.3/docs/api/java/util/Date.html

17. How do you do date subtraction between two dates?

An effective way to do date subtraction is to convert the dates into a time
representation and then do subtraction.You create two Calendar instances to
represent the dates, then create Date objects of these calendar instances to
represent the time in milliseconds. Subtract the time representation and
divide by the number of milliseconds in one day to retrieve the difference in
days.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.*;
 
public class DateSubtraction{
    public static void main(String [] args){
        Calendar cal = Calendar.getInstance();
        cal.set(2000, Calendar.AUGUST, 24);
        Date d1 = cal.getTime();
        cal.set(2000, Calendar.AUGUST, 28);
        Date d2 = cal.getTime();
        long daterange = d2.getTime() - d1.getTime();
        long time = 1000*3600*24; //A day in milliseconds
        System.out.println(daterange/time);
    }
}


For more information on Date and Calendar objects see:

Class Calender

Class Date


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
66901 [精華] 新手常見問題解答 swanky 26 2003-08-21 09:00
116386 1.java.lang.NoClassDefFoundError swanky 744 2003-08-21 09:02
51125 Re:1.java.lang.NoClassDefFoundError nfrog8108 150 2005-08-25 17:03
87137 11.deprecated是什麼意思? swanky 946 2003-08-21 09:15
62342 Re:11.deprecated是什麼意思? 寒冰 63 2003-12-25 20:01
72593 12.如何取得由Java程式呼叫的外在程式的執行結果? swanky 3459 2003-08-21 09:16
41342 Re:12.如何取得由Java程式呼叫的外在程式的執行結果? psmonkey 1049 2006-03-07 02:43
5079 Re:12.如何取得由Java程式呼叫的外在程式的執行結果? smartdanny 60 2014-08-07 16:02
72825 13.抽象類別和介面有什麼不同? swanky 3680 2003-08-21 09:18
62970 14.如何改變現在的工作目錄? swanky 951 2003-08-21 09:19
63392 15.前置和後置的increment運算子有什麼不同? swanky 1881 2003-08-21 09:20
62750 16.遞移運算子:為什麼 3<<3 和 3<<1 是一樣的? swanky 1117 2003-08-21 09:21
44855 Re:16.遞移運算子:為什麼 3<<3 和 3<<1 是一樣的? 小波 1188 2005-07-21 19:49
85561 17.如何對兩個日期做相減? swanky 1965 2003-08-21 09:22
52270 Re:17.如何對兩個日期做相減? dinos 25 2005-02-15 17:48
62924 18.我可以在哪裡找到Java程式的寫作慣例(coding convetions)? swanky 803 2003-08-21 09:23
65902 19.介面(interface)可以從別的地方繼承任何的行為嗎? swanky 1296 2003-08-21 09:25
65814 20.如何取得記憶體的統計資料(memory statistics)? swanky 1898 2003-08-21 09:26
71119 2. 啟動在 MS Windows 平台上的外部程式 swanky 757 2003-08-21 09:04
8803 Re:2. 啟動在 MS Windows 平台上的外部程式 kevin75116 238 2011-12-06 19:51
22086 Re:9.使用 '==' 運算子和 java.lang.String.equals()的不同 [Re:jason_chan19] viva0322 146 2008-05-05 11:24
77828 3. 下載最新版的 JDK swanky 122 2003-08-21 09:05
66868 4. 設定永久的 classpath swanky 878 2003-08-21 09:06
63441 5. 載入在使用者的 classpath 中所定義的類別 swanky 643 2003-08-21 09:07
65348 6. 拿到 Java 的認證 swanky 337 2003-08-21 09:08
63300 7. Sun 認證網站資源 swanky 339 2003-08-21 09:09
64751 8. 在基本資料型別和 java.lang.String 之間轉換 swanky 448 2003-08-21 09:11
97422 9.使用 '==' 運算子和 java.lang.String.equals()的不同 swanky 3116 2003-08-21 09:12
22187 Re:9.使用 '==' 運算子和 java.lang.String.equals()的不同 viva0322 867 2008-05-05 10:10
21988 Re:9.使用 '==' 運算子和 java.lang.String.equals()的不同 jason_chan19 690 2008-05-05 10:51
73217 10.在Java中是否可以移動/刪除檔案 swanky 1696 2003-08-21 09:14
39237 Re:10.在Java中是否可以移動/刪除檔案 mch 147 2006-06-11 15:01
» JWorld@TW »  Java 新手區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8