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("日曜日!");
}
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("日曜日!");
}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image