こんにちは。
生年月日入力時の桁数のチェックコードを書いています。
javaアプリケーションで2018/2/1(4桁:1桁:1桁)と入力後、
コンソールに「2018/2/1」と出力されます。
■達成したいこと
javaアプリケーションで
2018/2/1(4桁:1桁:1桁)と入力後、
コンソールに
2018/02/01(4桁:2桁:2桁)と表示されるようにしたい。
java
1// 2-1.生年月日確認 2 if (!checkHiduke(new StringBuilder(inr_seinengappi_nen).append("/").append(inr_seinengappi_tsuki) 3 .append("/").append(inr_seinengappi_hi).toString())) { 4 JOptionPane.showMessageDialog(null, "[生年月日]実在する生年月日か、確認してください。", "[情報]", 5 JOptionPane.INFORMATION_MESSAGE); 6 lbl_error_seinengappi.setText("[生年月日]実在する生年月日か、確認してください。"); 7 return; 8 } // end if 9 10 /** 11 * 12 * @param _paramHiduke:String 13 * @return 14 */ 15 public boolean checkHiduke(final String _paramHiduke) { 16 boolean isRtn_CheckHidukeResult = false; 17 System.out.println("_paramHiduke :" + _paramHiduke); 18 19 // 日付判定パターンを生成 20 // [年月日yyyy-mm-dd(詳細版:月は1~12、日は1~31)] 21 Pattern p = Pattern.compile("^(\d{4})/(\d{1,2})/(\d{1,2})$"); 22 23 24 25 // [年月日yyyy-mm-dd(簡易版)] 26 // ^(\d{4})/(\d{2})/(\d{2})$ 27 Matcher m = p.matcher(_paramHiduke); 28 if (!m.find()) { 29 JOptionPane.showMessageDialog(null, "入力日付に誤りがあります。見直してください。", "エラー", JOptionPane.ERROR_MESSAGE); 30 return isRtn_CheckHidukeResult; 31 } // end if 32 33 // 日付フォーマッターを定義 34 DateFormat df = DateFormat.getDateInstance(); 35 // 解析レベルを厳密にする 36 df.setLenient(false); 37 try { 38 // 入力年月日を解析 39 df.parse(_paramHiduke); 40 System.out.println(_paramHiduke + ": OK"); 41 } catch (ParseException ex1) { 42 // ありえない日付が渡されるとこっちに来る 43 System.out.println(_paramHiduke + ": NG"); 44 JOptionPane.showMessageDialog(null, "入力日付が実在しません。見直してください。", "エラー", JOptionPane.ERROR_MESSAGE); 45 ex1.printStackTrace(); 46 return isRtn_CheckHidukeResult; 47 } // end catch 48 return isRtn_CheckHidukeResult = true; 49 }// end checkHiduke 50}
よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/13 05:29