0

開始日、終了日、アラーム日として 3 つの異なる日付を保存しています。

それらを文字列に変換してsqliteデータベースに保存しました。これらの3つの日付を互いに比較して、条件に従う場合にのみ日付をデータベースに入力する必要があります。それ以外の場合は、入力するアラートボックスを表示する必要があります適切な日付。

条件は

  1. アラームの日付は、開始日より前 (または同じ) で、終了日より前でなければなりません
  2. 開始日は終了日より前 (または同じ) で、終了日より前でなければなりません
  3. 終了日は開始日より後 (または) に等しく、アラーム日より前である必要があります

上記の条件を満たす場合にのみ、日付をデータベースに入力する必要があります。サンプルコードを使って、誰かがこれを手伝ってくれますか?

4

1 に答える 1

0

データベースから日付を文字列として取得し、それを Calendar として変換し、calendar のequal(), before(), after()メソッドを使用することができます。これが最善の方法だと思います。


更新しました:

YYYY-MM-DD のような形式の場合

StringTokenizer st = new StringTokenizer(startDate);
        int year = Integer.parseInt(st.nextToken("-"));
        int month = Integer.parseInt(st.nextToken("-"));
        int date= Integer.parseInt(st.nextToken("-"));
        Calendar calStartDate = Calendar.getInstance();
        calStartDate.set(Calendar.DAY_OF_MONTH, date);
        calStartDate.set(Calendar.MONTH, month - 1);
        calStartDate.set(Calendar.YEAR, year);

endDate/alarmDate などの他の日付の変換と同じ

今すぐcalStartDate.before(calAlarmDate)あなたの条件に応じて適用します。

于 2012-06-30T11:07:40.027 に答える