在我的应用程序中,我必须比较存储在整数变量中的两个时间值。这里的所有值都是 24 小时格式。我使用此代码生成值:
Calendar c = Calendar.getInstance();
int startTime = startHour * 60 + startMin;
int endTime = endHour * 60 + endMin;
int now = c.get(Calendar.HOUR_OF_DAY) * 60 + c.get(Calendar.MINUTE);
现在我必须检查是否currentTime
介于startTime
和之间endTime
。当然我可以用这个条件来检查这个:
if(startTime <= now && endTime >= now)
// between...
这在大多数情况下效果很好,但如果startTime
大于endTime
原因它不起作用。举个例子:现在是 02:00 点
int startTime = 1395; // 23:15
int endTime = 270; // 04:30
int now = 120; // 02:00
现在 if 条件不起作用。有什么想法可以解决这个问题吗?我必须将值保存在整数变量中,而不是日历或日期对象或其他东西。
顺便说一句,我认为仅使用整数以这种方式存储时间的想法(不是我自己的)很棒。它使用的内存非常少,并且使用modulo
anddivider
运算符很容易获得真正的小时和分钟。