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

目次


日付妥当チェックしたいとき。

たとえば2007/02/30はただしい日付なのか?
普通にCalendar型にsetしてもこれは2007/03/02って設定されちゃう。

そうしないためにはsetLenient()メソッド。

日付解釈を厳密にしない。

Calendar cal = Calendar.getInstance();
cal.setLenient( true );
これで
cal.set(2007, 2, 30);
System.out.println(cal.get(Calendar.YEAR)) + "年" + cal.get(Calendar.MONTH)+1) + "月" + cal.get(Calendar.DATE) + "日");

とやると結果は
2007年3月2日
になるの。

日付解釈を厳密にする。


Calendar cal = Calendar.getInstance();
cal.setLenient( false );
cal.getTime();

これで
cal.set(2007, 2, 30);
とやると最後のところで例外IllegalArgumentExceptionが発生。

これつかって日付として正しい値なのかチェックができるのね。

例外を使って日付チェック

Calendar cal = Calendar.getInstance();
cal.setLenient( false );
cal.set(yyyy, mm, dd);
try{
  cal.set(year, month-1, day);
  cal.getTime();
  System.out.println(cal.get(Calendar.YEAR)) + "年"
  + cal.get(Calendar.MONTH)+1) + "月"
  + cal.get(Calendar.DATE) + "日");
} catch (IllegalArgumentException e){
  System.out.println(だめだめじゃーん?);
}

yyyy:年
mm:月
dd:日
を設定して実行する。月の設定方法に注意。
getTime()メソッド使用時に例外が発生するのが日付としておかしい内容。



妥当って打とうとして「だちょう」になっちゃったですよ!