gpt4 book ai didi

Android - 检查时间是否在一天中的特定时间之间

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:53 24 4
gpt4 key购买 nike

在我的应用程序中,如果时间在用户选择的一天中的特定时间之间,我会更新一些内容。如果用户选择像“07-21”这样的东西,它工作正常,但不能选择“21-07”,因为它是过夜的。我检查时间的方式是获取当前小时并将其转换为毫秒。然后我检查当前毫秒是否在所选时间之间(这些时间也被转换为毫秒)。像这样:

    if (currentMilli >= startHourMilli && currentMilli <= endHourMilli) 

问题:如果用户选择超过午夜的任何内容(例如 19-08),它就不起作用。

我已经尝试了很多东西,但我就是不知道该怎么做。

感谢任何帮助!

最佳答案

午夜过后,一年中的第几天会增加 1 吗?否则你的startHourMilli 可能大于 endHourMilli 并且您的 if 子句将始终为 false。

解决方案是使用日历类的add-method。因此,我以小时为单位计算时间间隔的长度,并将该值添加到我们的日历实例中。

int start = 21; // let's take your failing example: 21-07
int end = 7;
int hours = (end - start) % 24; // here hours will be 14

Calendar cal = Calendar.getInstance();
// set calendar to TODAY 21:00:00.000
cal.set(Calendar.HOUR_OF_DAY, start);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);

long startHourMilli = cal.getTimeInMillis();

// add 14 hours = TOMORROW 07:00:00.000
cal.add(Calendar.HOUR_OF_DAY, hours);
long endHourMilli = cal.getTimeInMillis();

如果这有帮助,请告诉我:)

关于Android - 检查时间是否在一天中的特定时间之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592669/

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