アフィリエイト広告を利用しています
最新記事
日別アーカイブ

広告

posted by fanblog

2012年05月08日

日付の扱い方

日付の扱い方について、開設させていただきます。
javascript でもそうなのですが、日付を数値、または文字列で扱うことに違和感を覚えていました。
なぜか?

たとえば、変数に入っている値の一か月先を計算した場合、30日先を計算した場合、
それぞれ、計算が大変ですよね?
日付型であれば、月に1を足して12を超えたら、、、なんて処理が不要になります。

逆に気にしなければならないのが、時刻まで指定されてしまっている場合の
日付比較ですが、これは時刻部分をきれいにしてあげれば済む話です。

さて、DoJa の日付ですが、Calendar オブジェクトが便利です。
Calendar.getInstance() で、日付オブジェクトを生成できます。
初期値は、現在日時です。

オブジェクトは参照渡しなので、日付オブジェクトをコピーする場合は
以下の処理を行ないます。

Calendar a = Calendar.getInstance();
Calendar b = Calendar.getInstance();
b.setTime(a.getTime());

日付の比較については、単に不等号で比較できればいいのですが、
以下のメソッドが用意されているので、こちらを使いましょう。

// a が b より早い日時であれば true
a.before(b)

// a が b より遅い日時であれば true
a.after(b)

// a と b が同じであれば true
a.equals(b)

equals はインスタンスが別であっても、同じ日時であれば true になります。


日付の計算方法についてです。
set メソッドに、引数をつけて呼出します。
Calendar a = Calendar.getInstance();
// 2012 年を設定
a.set(Calendar.YEAR, 2012);
// 5 月を設定(指定月から 1 減算する必要があります)
a.set(Calendar.MONTH, 4);
// 1日を指定(0 を指定すると、前月末が指定されます)
a.set(Calendar.DAY_OF_MONTH, 1);
// 零時を指定
a.set(Calendar.HOUR, 0);
// 1 分足してみます
a.set(Calendar.MINUTE, a.get(Calendar.MINUTE) + 1);
// 0 秒を指定
a.set(Calendar.SECOND, 0);
// 0 ミリ秒を指定
a.set(Calendar.MILLISECOND, 0);

曜日を取得する場合は、以下のような使い方をします。

if(a.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY){
System.out.println("日曜日!");
}
posted by FJT at 05:40| DoJa
プロフィール
FJTさんの画像
FJT
使えそうな技術情報を掲載しています。 ぜひ、役立ててください。
プロフィール
リンク集
×

この広告は30日以上新しい記事の更新がないブログに表示されております。