gpt4 book ai didi

java - 在java中显示两个日期之间的天,小时,分钟

转载 作者:行者123 更新时间:2023-12-02 06:35:52 24 4
gpt4 key购买 nike

我需要以天:小时:分钟的格式显示 future 指定日期和现在之间的倒计时器。因此,例如结束日期是 2013 年 12 月 4 日下午 1:30,现在是 2013 年 12 月 3 日下午 12:30,我的 textView(或任何其他 View )应显示“剩余时间 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 线程上一次又一次地执行相同的任务,这可能会导致我感觉滞后

最佳答案

我猜您有两个 java.util.Date 对象需要比较。首先,您想要某种每 N 秒执行一次的计时器。 Handler.postDelayed() 对此效果很好。每次执行时,您都使用timeMs = futureDate.getTime() - System.currentTimeMillis()。这给出了以毫秒为单位的时间差。然后您只需将其转换为所需的格式:例如秒 = timeMs/1000 % 60

关于java - 在java中显示两个日期之间的天,小时,分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19664696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com