やりたいこと
大小比較をしたい
公開日時 < お知らせ日時(もうすぐですよのお知らせ)< 参加日時
公開日時とお知らせ日時、参加日時を比較し、お知らせ日時が公開日時より過去に設定されていたらエラーを返したい
※compareToで比較をしたい
できないこと
公開日とお知らせ日のチェックはできているがお知らせ時間のチェックができない
例)
- 公開日 2020/8/4 AM10
- お知らせ日 2020/8/3 AM9
→ お知らせ日<公開日でエラーになるのでOK
- 公開日 2020/8/4 AM10
- お知らせ日 2020/8/4 AM9
→ お知らせ日<公開日なのでエラーにしたいがならない
Bean
セッター、ゲッターのみ設定している(エラーはでない)
ソース
java
1 2// 参加日時 3Calendar sanka = null; 4DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmm"); 5try { 6 sanka = UiUtils.createCalendar(formatter 7 .parse(bbsBean.getSankaYear() + bbsBean.getSankaMonth() 8 + bbsBean.getSankaDay() + bbsBean.getSankaTime() 9 + bbsBean.getSankaMinute()) 10 .getTime()); 11} catch (ParseException e) { 12 log.error("参加日時エラー.", e); 13} 14 15Calendar oshirase = null; 16// お知らせ日 公開日時から何日前の何時 17if (bbsBean.getOshirase() != null && bbsBean.gettOshirase()) { 18 oshirase = Calendar.getInstance(); 19} else { 20 try { 21 oshirase = UiUtils.createCalendar(formatter 22 .parse(bbsBean.getOshiraseDays() + bbsBean.getOshiraseHour() + "00") 23 .getTime()); 24 } catch (ParseException e) { 25 log.error("お知らせ日時エラー.", e); 26 } 27} 28 29// 公開日時 30Calendar koukaiDate = null; 31// すぐ公開の場合は現在日時を取得する 32if (bbsBean.getkoukaiNow() != null && bbsBean.getkoukaiNow()) { 33 koukaiDate = DmsWebCalendar.getCurrentCalendar(); 34} else { 35 try { 36 koukaiDate = UiUtils.createCalendar(formatter 37 .parse(bbsBean.getkoukaiYear() + bbsBean.getkoukaiMonth() 38 + bbsBean.getkoukaiDay() + bbsBean.getkoukaiTime() 39 + bbsBean.getkoukaiMinute()) 40 .getTime()); 41 } catch (ParseException e) { 42 log.error("公開日時エラー.", e); 43 } 44} 45 46public static String ck1(Locale locale, Calendar date1, Calendar date2, String targetName) { 47 int i = date1.compareTo(date2); 48 if (i <= 0) { 49 return getMessage(locale, "EM1", new Object[] { targetName }); 50 } 51 return null; 52 } 53 54eventDate.add(Calendar.DATE, -1 * Integer.parseInt(bbsBean.getRmdAltDays01())); 55String errorMessage = ck1(getLocale(), 56 sanka, koukaiDate, 57 getText("お知らせは公開日より未来に設定")); 58if (errorMessage != null) { 59 addErrorMessage(errorMessage); 60}
回答2件
あなたの回答
tips
プレビュー