Japanese / English
日付の比較
日付の比較は書式がYYYY/MM/DDや、YYYYMMDDといったように、比較する書式が同じであれば文字列比較のcompareToで可能です。
compareToについてはString同士の大小比較を御覧下さい。

Calendarクラスで比較する場合、グレゴリオ暦からの経過ミリ秒で判断します。
以下、例です。

package jp.co.confrage;

import java.util.Calendar;

public class Test002 {

    public static void main(String[] args) {
        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();

        cal1.set(2011,0,1);
        cal2.set(2011,0,2);

        if(cal1.compareTo(cal2) == 0){
            System.out.println("同一日付です");
        }else{
            System.out.println("同一日付ではありません");
        }
    }
}
Calendarクラスのコンストラクタはprotectedされているため、newできません。上記のようにファクトリメソッドよりインスタンス生成します。

日付の計算
文字列型の日付計算を行うにはCalendarクラスとSimpleDataFormatクラスで計算可能です。

Calendar cal = Calendar.getInstance();
Calendarクラスのインスタンスを生成し、setメソッドを使用します。

Calendar cal = Calendar.getInstance();
cal.set(2011,0,1);
これで20110101をセットしたことになります。年月日の順でセットしますが、月だけ0~11になります。
ここから3日マイナス計算したい場合

Calendar cal = Calendar.getInstance();
cal.set(2011,0,1);
cal.add(Calendar.DATE,-3);
これでマイナス3日しています。あとはcalendar.getTime()で日付取得することができます。

以下、例です。

String ymd = "20110101";
Calendar cal = Calendar.getInstance();
cal.set(Integer.parseInt(ymd.substring(0,4)),
        Integer.parseInt(ymd.substring(4,6)) - 1,
        Integer.parseInt(ymd.substring(6,8)));
cal.add(Calendar.DATE,-3);

SimpleDataFormat sdf = new SimpleDataFormat("yyyyMMdd");
String date = sdf.format(calendar.getTime());
System.out.println(date);

Back to top

Information
Information
社長ブログ


運営サイト




広告



Google Search
PV
SEO対策 大阪  税理士 相談  税理士 守口市  税理士 大阪市  税理士 枚方市  自動車ガラス 神戸  シール印刷 神戸  ブリリアントアパートメント  株式会社CONFRAGE  英会話 個人レッスン 京都市右京区  京都市右京区西京区でマンツーマン英会話 
このページはCONFRAGEの著作物です。このページを複製・転載することを禁じます。CopyRight(C)2003-2016 CONFRAGE All rights reserved.