我希望在时间介于20:45和23:15之间时显示文字
Time today = new Time(Time.getCurrentTimezone());
today.setToNow();
if ((today.hour>=20 && today.minute>=45)
&& (today.hour<=23 && today.minute<=15) ){
MainTextView.setText("my text");}
问题在于,这样的分钟会相互干扰(实际上它不可能小于15,同时大于45),因此不会显示任何文本。有什么想法吗?
答案 0 :(得分:1)
是的,你只需要修复你的逻辑。您只需比较分钟如果小时是临界小时。例如:
if ((today.hour > 20 || (today.hour == 20 && today.minute >= 45)) &&
(today.hour < 23 || (today.hour == 23 && today.minute <= 15)) {
...
}
或者,将时间转换为白天的&#34;分钟&#34;并根据以下算法进行算术:
int minuteOfDay = today.hour * 60 + today.minute;
if (minuteOfDay >= 20 * 60 + 45 &&
minuteOfDay <= 23 * 60 + 15) {
...
}