comscom@Wiki
日付チェックしたいの
最終更新:
dotcom
-
view
目次
日付妥当チェックしたいとき。
たとえば2007/02/30はただしい日付なのか?
普通にCalendar型にsetしてもこれは2007/03/02って設定されちゃう。
普通に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()メソッド使用時に例外が発生するのが日付としておかしい内容。
mm:月
dd:日
を設定して実行する。月の設定方法に注意。
getTime()メソッド使用時に例外が発生するのが日付としておかしい内容。
妥当って打とうとして「だちょう」になっちゃったですよ!