0

我正在存储 3 个不同的日期作为开始日期、结束日期、闹钟日期。

我已将它们转换为字符串并将它们存储在 sqlite 数据库中,现在我想将这 3 个日期相互比较,以便只有在符合条件时才应将日期输入数据库,否则必须显示一个警告框才能输入一个合适的日期。

条件是

  1. 警报日期应小于(或)等于开始日期且不大于结束日期
  2. 开始日期应小于(或)等于结束日期且不大于结束日期
  3. 结束日期应大于(或)等于开始日期但不小于报警日期

只有满足上述条件的日期才应录入数据库。任何人都可以通过一些示例代码帮助我吗?

4

1 回答 1

0

您可以从数据库中获取日期作为字符串,然后将其转换为日历,使用日历的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 回答