• 締切済み

JAVA 日付チェック方法 年・月・日 個別にする方法

java カレンダーチェック 年チェック、月チェック、日チェックについて 年テキストボックス、月テキストボックス、日テキストボックスの3つがあります。 現在の処理方法としてyyyyとmmとddの間に「-」をつけ足してyyyy-mm-ddといった形でチェックメソッドを呼び出しています。 --メソッド内容-- public boolean isDate( String strDate ) throws Exception { try { if ( strDate == null || strDate.length() != 10) { throw new IllegalArgumentException( "引数の文字列["+ strDate +"]" + "は不正です。"); } String strDate2 = strDate.replace('-', '/'); //replace( 'before' , 'after' ) ; '-'が'/'になる DateFormat format = DateFormat.getDateInstance(); // 日付/時刻解析を厳密に行うかどうかを設定する。 format.setLenient( false ) ; format.parse( strDate2 ) ; return true; } catch ( IllegalArgumentException e ) {//引数に不正な値が渡された場合にキャッチする System.out.println("IllegalArgumentException e でcatch"); return false; } catch ( Exception e ) { System.out.println("Exception e でcatch"); return false; } }//END try --問題点-- 2009/13/12 や 2009/12/32 の場合等、 年でエラーなのか、月でエラーなのか、日でエラーなのか特定できない処理です。 年と月と日でどこでエラーが出ているのかわかる日付チェックはありますでしょうか? 尚範囲指定のif文は考えたのですが、2/29のチェック(うるう年)ができないため、あきらめました。 よろしくお願いします。

みんなの回答

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.4

#2です。 他の方の回答等で解決されているのではと思われますが、言っている意味について追加します。 google詳細検索は良く使われているものとしてURLは明示しませんでした。 また、月は1-12, 日は1,3-12月に対応して30又は31, 年は用途に応じて2009-2019, 1900-2999等の範囲等として容易にチェック出来ます。 2月が28日迄か29日迄かは閏年かどうかをチェックする必要があります。 google code search で サーチできます。 http://www.google.co.jp/advanced_search?hl=ja 検索オプション指定窓の一番下 トピック絞り込み検索: New" Google ソースコード検索をクリックして検索してください。 http://www.google.co.jp/codesearch?hl=ja 必要であればソースコード検索オプションで言語:java等と指定できます。 http://www.google.co.jp/codesearch/advanced_code_search?hl=ja 検索条件として "leap year check" 言語として   "java" を選択してください。 以上の操作で閏年チェック関係のコードが見つかります。 例えば、次のisLeapYear() methodが参考になります。 その他、年月日も含めたチェックコードも見つかるのではと思います。 http://www.google.co.jp/codesearch/p?hl=ja&sa=N&cd=4&ct=rc#AwYZ64TqMMg/jhan/Spring2005/csc121/lab/lab06/Year.java&q=leap%20year%20check%20lang:java 以上のことを読み取っていただけるものと考えていましたが、少し説明不足でした。 

  • komi1341
  • ベストアンサー率65% (25/38)
回答No.3

こちらにそっくりな質問があるのですが http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1432574419 回答も何件かついているようですが、参考にならなかったのでしょうか?

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.2

google code search で サーチできます。 検索オプション指定窓の一番下 トピック絞り込み検索: New" Google ソースコード検索をクリックして検索してください。 必要であればソースコード検索オプションで言語:java等と指定できます。 (leap year check...)

tuka52
質問者

補足

??? 言っている意味がよくわからないのですが・・・ すいません。 使い方が理解できません。アドバイスをお願いします。

noname#259269
noname#259269
回答No.1

年と月は比較的簡単にチェックできませんか? そうすると、年と月が正しい時に日チェックを行えば良いのでは? 日チェックは、parse等で良いでしょう。

tuka52
質問者

補足

ご連絡ありがとうございます。 サンプルソースの記載されているサイトはありますでしょうか?