※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

日付を処理したい時はCalendar型ですよオクサマ。
Calenderじゃなくてよ。


宣言しよう

calって名前の変数にしてみます。
private Calendar cal;

これが必要よ。
import java.util.Calendar;

今日の日付を取ってくるには?

cal = Calendar.getInstance();
これでおっけー。

2007/03/05に以下のを実行すると。。
System.out.println("年:" + cal.get(Calendar.YEAR));
System.out.println("月:" + cal.get(Calendar.MONTH));
System.out.println("日:" + cal.get(Calendar.DATE));
こんな結果に。
年:2007
月:2
日:5
おりょー。
2月になっちゃった。

月は0から始まる。

0から11まで。

任意の日付をセット

cal.set(2007,3,5);
こうすると
System.out.println("年:" + cal.get(Calendar.YEAR));
System.out.println("月:" + cal.get(Calendar.MONTH));
System.out.println("日:" + cal.get(Calendar.DATE));
こんな結果に。
年:2007
月:3
日:5
お願いしたとおりに設定されるですよ。


曜日がほしい時(数字)

これが必要よ。
import java.util.Date;

3月の曜日ー!
cal.set(2007,3,5);
cal.get(Calendar.DAY_OF_WEEK));
ってやると
System.out.println(
"2007/03/05の曜日:" + cal.get(Calendar.DAY_OF_WEEK));
数字。。。

日本語にしちゃいましょーそうしましょー

曜日がほしい時(日本語)

月火水・・・って変換してくれるの。

これが必要よ。
import java.text.SimpleDateFormat;
import java.util.Locale;

2007/03/05の曜日を求めてみるわ。
cal.set(2007,3,5);
SimpleDateFormat weeks = new SimpleDateFormat ("EEE",Locale.JAPANESE);
Date currentTime = cal.getTime();
weeks.format(currentTime);

こんな風にすると。。
System.out.println("2007/03/05の曜日:" + weeks.format(currentTime));
結果は
2007/03/05の曜日:木

日付を計算しよう

addを使うですよ。
cal.getTime()が 2007/03/05の時
  • 1ヶ月前
cal.add(Calendar.MONTH,-1);
→2007/02/05
  • 1ヶ月後
cal.add(Calendar.MONTH,1);
→2007/04/05
  • 10日前
cal.add(Calendar.DATE,-10);
→2007/02/23
  • 1日後
cal.add(Calendar.DATE,1);
→2007/03/06

年も同じ。Calendar.YEARで指定すればいいわけよ。