【发布时间】:2018-09-18 02:35:27
【问题描述】:
我有两个日历日期,我得到了天、小时和分钟之间的差异。
如果结束日期大于开始日期,这将非常有效。 如果开始日期与结束日期在一周中的同一天,但比结束日期更早,则不起作用。 例如:结束日期为星期六下午 2:20,开始日期为星期六下午 7:20。 它以 0 天和 5 小时计算。但是,应该更像是 7 天。
这里是代码
long t1 = curCal.getTimeInMillis();
long t2 = setCal.getTimeInMillis();
if(t2 < t1){
days = t1-t2;
}else{
days = t2-t1;
}
long toDays = TimeUnit.MILLISECONDS.toDays(days);
long toHours = TimeUnit.MILLISECONDS.toHours(days) % 24;
long toMinutes = TimeUnit.MILLISECONDS.toMinutes(days) % 60;
String toastMessage = String.format(" %d Days %d Hours %d Minutes", toDays, toHours, toMinutes);
Toast.makeText(context, "ALARM in" + " " + toastMessage , Toast.LENGTH_LONG).show();
我该如何处理结束日期与开始日期相同的情况,但结束日期是开始日期之前的时间?
谢谢
编辑
我想我解决了我的问题。我正在为其他有同样问题的人添加它。如果结束日期 = 开始日期(同一天)将 7 添加到日历对象以作为结束日期。伪代码
if (enddate == startdate)) {
enddate.add(Calendar.DAY_OF_YEAR, 7);
}
【问题讨论】:
-
仅供参考,
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat等麻烦的旧日期时间类现在已被 java.time 类所取代。在ThreeTen-Backport 项目中,大部分java.time 功能都被反向移植到Java 6 和Java 7。在ThreeTenABP 项目中进一步适用于早期的Android。见How to use ThreeTenABP…。
标签: java android time date-difference java.util.calendar