2013-07-28 85 views
1

我想花费几个小时,我使用SimpleDateFormat解析并确定当前时间是否在两组小时之间。基本上,给定一个地方的时间,我试图确定它是否目前开放我们的封闭。确定时间是否在两个其他时间之间

我通过执行以下操作获取当前时间:

SimpleDateFormat sdf2 = new SimpleDateFormat("kk:mm"); 
Calendar now = Calendar.getInstance(); 
int hour = now.get(Calendar.HOUR); 
int minute = now.get(Calendar.MINUTE); 
String currentHour = Integer.toString(hour); 
String currentMinute = Integer.toString(minute); 
String timeNow = currentHour + ":" + currentMinute; 
Date timeRightNow = sdf2.parse(timeNow); 

于是,我决定timeRightNow是否是打开和关闭时间之间,我做了以下内容:

if (timeOpen.before(timeRightNow) && timeClose.after(timeRightNow)) { 
    openStatus = "open!"; 
} else { 
    openStatus = "closed."; 
} 

两个timeOpentimeClose是通过使用sdf2解析字符串来找到的,方法与找到timeRightNow完全相同。

每次运行时,它都会将openStatus设置为“关闭”。即使当前时间在打开和关闭时间之间。任何人都可以用正确的方向指出我为什么会发生这种情况?

+1

你可能有上午/下午的困境?用调试器跟踪应该会揭示问题的根源。 –

+0

或者简单地输出那些时间并看着它们。 –

+0

你如何计算timeOpen和timeClose? – Peshal

回答

1

我将Calendar.HOUR更改为Calendar.HOUR_OF_DAY。这解决了这个问题。

+0

男人!你救了我的命! :) –

相关问题