
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のチェック(うるう年)ができないため、あきらめました。
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
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 …
検索条件として "leap year check"
言語として "java" を選択してください。
以上の操作で閏年チェック関係のコードが見つかります。
例えば、次のisLeapYear() methodが参考になります。
その他、年月日も含めたチェックコードも見つかるのではと思います。
http://www.google.co.jp/codesearch/p?hl=ja&sa=N& …
以上のことを読み取っていただけるものと考えていましたが、少し説明不足でした。
No.3
- 回答日時:
こちらにそっくりな質問があるのですが
http://detail.chiebukuro.yahoo.co.jp/qa/question …
回答も何件かついているようですが、参考にならなかったのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Access(アクセス) エクセルのVBAについて教えてください。 4 2023/01/21 10:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
VC++におけるCStringの変換
-
swingで。
-
VB.Net Object型 空かどうか
-
C# ファイル名を指定してオ...
-
アクセスのテーブルのフィール...
-
javaのコンパイルエラーが解決...
-
String型の日付(2005/11/25)の...
-
【java】ファイル名から画像を取得
-
数字か文字列かを判定する関数
-
C#の捕捉されない例外処理の対...
-
SQLException getNextException()
-
0除算の例外処理ができない!!...
-
C#でニコニコ動画の情報取得時...
-
【JAVA】与えられた金額を貨幣...
-
Timestamp型への変換について(J...
-
VB.NETで16進数が正しいかどう...
-
VBA Evaluate関数 型が一致しま...
-
WebClient()以外でネットにアク...
-
「隣の芝生は青く見える」現象...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
C#の捕捉されない例外処理の対...
-
VB.Net Object型 空かどうか
-
連続する「\\」をひとつの「\\...
-
VC++におけるCStringの変換
-
VBA Evaluate関数 型が一致しま...
-
Javaで文字列をゼロ埋め(ゼロパ...
-
ファイルダイアログを開いた時...
-
VB.NETで16進数が正しいかどう...
-
Timestamp型への変換について(J...
-
C# マルチスレッドにおける例外...
-
コンストラクタでの例外は不可...
-
文字列からダブルクオートの削除
-
String型の日付(2005/11/25)の...
-
例外ってIf文の中に入れますか...
-
初回例外
-
【JAVA】与えられた金額を貨幣...
-
アサーションと例外処理の違い...
-
VBA 400エラー 1004エラー
-
WebClient()以外でネットにアク...
おすすめ情報