我需要在未来的指定日期和现在之间以 Days:Hours:Minutes 格式显示倒数计时器。因此,例如结束日期是 2013 年 12 月 4 日下午 1:30,现在是 2013 年 12 月 3 日下午 12:30,我的 textView(或任何其他视图)应显示“剩余时间 1 天:1 小时:0 分钟”
我不想使用 joda-time 库,因为它将我的应用程序大小增加了大约 4.1 MB,而且我只需要在我的应用程序中使用一次日期/时间功能。我正在使用 java 提供的日历 API,但无法实现此“计时器”/“倒数计时器”功能
知道我应该如何实施吗?
编辑:我的应用程序将仅用于 1 个时区,即。EST,所以我不必担心时区校正
编辑:到目前为止我已经尝试过,获取 2 日历的月份
cal1.get(Calendar.MONTH); //to get the month
cal2.get(Calendar.MONTH);
cal1.get(Calendar.DAY_OF_MONTH); //to get the day
cal2.get(Calendar.DAY_OF_MONTH);
cal1.get(Calendar.HOUR_OF_DAY); //to get the hour in 24 hours
cal2.get(Calendar.HOUR_OF_DAY);
cal1.get(Calendar.MINUTE); //to get the minutes
cal2.get(Calendar.MINUTE);
cal1.get(Calendar.SECOND); //to get seconds
cal2.get(Calendar.SECOND);
现在我减去月份,如果是 0,那么我知道差异小于 1 个月,同样我减去天、小时、分钟。然而,这并没有给我一个准确的结果。示例 - 今天 2013 年 7 月 6 日上午 4 日,结束日期 2013 年 7 月 7 日上午 3 日,根据我的算法,它会说剩余时间是1 天零 -1 小时,我运行一个计时器每秒执行此任务
我需要更好的算法和更好的显示方式,我在 UI 线程上一次又一次地执行相同的任务,这可能会导致我感觉滞后