質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

2回答

1923閲覧

Java 日時を比較してエラー表示

roro_mochi

総合スコア48

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2020/08/04 02:36

編集2020/08/04 03:22

やりたいこと

大小比較をしたい
公開日時 < お知らせ日時(もうすぐですよのお知らせ)< 参加日時

公開日時とお知らせ日時、参加日時を比較し、お知らせ日時が公開日時より過去に設定されていたらエラーを返したい
※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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ihigaku

2020/08/04 03:19

ck1はどこから呼ばれ、ck1111は何を呼んでいるのでしょうか
roro_mochi

2020/08/04 03:22

すみません!修正いたしました。
roro_mochi

2020/08/04 09:51

conpareTOをifの「||」で繋げて 日時を大小比較することでできました。
guest

回答2

0

自己解決

conpareTOをifの「||」で繋げて
日時を大小比較することでできました。

投稿2020/08/04 09:51

roro_mochi

総合スコア48

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

日時がどのような書式で設定されているかわかりませんが、例として出されているように午前/午後があるのであれば、少なくともフォーマッタにそのフィールドaが無いといけません。それが解釈できないために、日時解析が日付までで止まって、日付だけの比較になってしまっているのだと思います。

投稿2020/08/04 02:46

swordone

総合スコア20669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

roro_mochi

2020/08/04 02:47

すみません。 時間は0-23時としています。書き方が悪かったです。修正します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問