java.util.Calendarよくある使い方 - Calendarによる日付・日時を比較する

2009/02/26 19:02更新
TAGS: java | Calendar | 日付 | 日時 | 比較 | after | before | compareTo | equals

java.util.CalendarはJava日付・時刻を扱うための便利なクラスです。Calendarによる日付・日時を比較する方法について学びます。

Calendarによる日付・日時を比較する例


サンプルコード
TestCalendar.java
import java.util.Calendar;

public class TestCalendar {

    /**
     * java.util.Calendar
     * Java Calendarによる日付・日時を比較する
     * java.util.Calendarクラスに日付・日時 の比較関連のメソッド:
     * 1)boolean after(Object when)
     *      この Calendar が、指定された Object の表す時刻より後の時刻を表すかどうかを返します。
     * 2)boolean after(Object when) 
     *      この Calendar が、指定された Object の表す時刻より前の時刻を表すかどうかを返します。
     * 3)int compareTo(Calendar anotherCalendar)
     *       2 つの Calendar オブジェクトで表される時刻値 (エポックからのミリ秒単位のオフセット) を比較します。
     * 4)boolean equals(Object obj) 
     *      指定された Object と比較します。
     * 
     */
    public static void main(String[] args) {
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        Calendar calendar3 = Calendar.getInstance();
        
        //************日時設定***************
        //2000年11月20日を設定します。設定しなかった時、分、秒、ミリ秒などは、0ではなく実行時の時、分、秒、ミリ秒値になります。
        calendar1.set(2000, 10, 20, 10, 15, 900);
        calendar2.set(2008, 1, 25, 14, 25, 950);
        calendar3.set(2000, 10, 20, 10, 15, 900);
        
        System.out.println("************日付・日時比較***************");
        System.out.println("日付calendar1:" + calendar1.getTime() + "[" + calendar1.getTimeInMillis() + "]");
        System.out.println("日付calendar2:" + calendar2.getTime() + "[" + calendar2.getTimeInMillis() + "]");
        System.out.println("日付calendar2:" + calendar3.getTime() + "[" + calendar3.getTimeInMillis() + "]\r\n");
        
        //Calendar.afterメソッド
        boolean ret1 = calendar1.after(calendar2);
        System.out.println("日付calendar1は日付calendar2より 後である" + ret1);
        boolean ret2 = calendar1.after(calendar3);
        System.out.println("日付calendar1は日付calendar3より 後である" + ret2);
        
        //Calendar.beforeメソッド
        boolean ret3 = calendar1.before(calendar2);
        System.out.println("日付calendar1は日付calendar2より 前である" + ret3);
        boolean ret4 = calendar1.before(calendar3);
        System.out.println("日付calendar1は日付calendar3より 前である" + ret4);
        
        //Calendar.compareToメソッド
        int ret5 = calendar1.compareTo(calendar2);
        System.out.println("日付calendar1は日付calendar2より :" + ret5);
        int ret6 = calendar1.compareTo(calendar3);
        System.out.println("日付calendar1は日付calendar3より :" + ret6);
        
        //Calendar.equalsメソッド
        boolean ret7 = calendar1.equals(calendar2);
        System.out.println("日付calendar1と日付calendar2は等しいか:" + ret7);
        boolean ret8 = calendar1.equals(calendar3);
        System.out.println("日付calendar1と日付calendar3は等しいか:" + ret8);
    }

}


実行結果
************日付・日時比較***************
日付calendar1:Mon Nov 20 10:30:00 JST 2000[974683800806]
日付calendar2:Mon Feb 25 14:40:50 JST 2008[1203918050806]
日付calendar2:Mon Nov 20 10:30:00 JST 2000[974683800806]

日付calendar1は日付calendar2より 後であるfalse
日付calendar1は日付calendar3より 後であるfalse
日付calendar1は日付calendar2より 前であるtrue
日付calendar1は日付calendar3より 前であるfalse
日付calendar1は日付calendar2より :-1
日付calendar1は日付calendar3より :0
日付calendar1と日付calendar2は等しいか:false
日付calendar1と日付calendar3は等しいか:true

参考資料


java.util.Calendar API仕様(Javadoc)

著者について
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


コメント

ユーザ名 (required)

Eメール (will not be published) (required)

Webサイト

記事への評価