日期不等式在android中不起作用

时间:2014-08-04 21:28:18

标签: android datetime textview timezone inequality

我希望在时间介于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),因此不会显示任何文本。有什么想法吗?

1 个答案:

答案 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) {
  ...
}