我正在存储 3 个不同的日期作为开始日期、结束日期、闹钟日期。
我已将它们转换为字符串并将它们存储在 sqlite 数据库中,现在我想将这 3 个日期相互比较,以便只有在符合条件时才应将日期输入数据库,否则必须显示一个警告框才能输入一个合适的日期。
条件是
- 警报日期应小于(或)等于开始日期且不大于结束日期
- 开始日期应小于(或)等于结束日期且不大于结束日期
- 结束日期应大于(或)等于开始日期但不小于报警日期
只有满足上述条件的日期才应录入数据库。任何人都可以通过一些示例代码帮助我吗?
我正在存储 3 个不同的日期作为开始日期、结束日期、闹钟日期。
我已将它们转换为字符串并将它们存储在 sqlite 数据库中,现在我想将这 3 个日期相互比较,以便只有在符合条件时才应将日期输入数据库,否则必须显示一个警告框才能输入一个合适的日期。
条件是
只有满足上述条件的日期才应录入数据库。任何人都可以通过一些示例代码帮助我吗?
您可以从数据库中获取日期作为字符串,然后将其转换为日历,使用日历的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)
根据您的情况申请等。