2016-03-02 38 views
0

在我的应用程序中,我在我的活动中设置了2个TimePickers。这是目前我如何从2个TimePickers获取值:从2个TimePickers中获取数值并进行比较

int hour1 = mFirstWakeUpTimePicker.getCurrentHour(); 
int min1 = mFirstWakeUpTimePicker.getCurrentMinute(); 
int hour2 = mSecondWakeUpTimePicker.getCurrentHour(); 
int min2 = mSecondWakeUpTimePicker.getCurrentMinute(); 

GregorianCalendar calendar1 = new GregorianCalendar(); 
GregorianCalendar calendar2 = new GregorianCalendar(); 

calendar1.set(Calendar.HOUR_OF_DAY, hour1); 
calendar1.set(Calendar.MINUTE, min1); 
calendar2.set(Calendar.HOUR_OF_DAY, hour2); 
calendar2.set(Calendar.MINUTE, min2); 

在那之后,我需要对它们进行比较,以检查它们是否至少3分钟的间隔。我如何实现这一目标?另外,编写这段代码的更好方法是什么?

任何帮助表示赞赏。

回答

1

假设你想CALENDAR2迟到然后是三个分钟就CALENDAR1你可以像这样,越来越小时,分钟从Timepickers之后:

GregorianCalendar calendar1 = new GregorianCalendar(); 
GregorianCalendar calendar2 = new GregorianCalendar(); 

calendar1.set(Calendar.HOUR_OF_DAY, hour1); 
calendar1.set(Calendar.MINUTE, min1); 
calendar2.set(Calendar.HOUR_OF_DAY, hour2); 
calendar2.set(Calendar.MINUTE, min2); 

long millisCal1 = calendar1.getTimeInMillis(); 
long millisCal2 = calendar2.getTimeInMillis(); 

if (millisCal2 - millisCal1 >= 1000 * 60 * 3){ 
    // They differ of at least three mins 
} else { 
    // They not differ of at least three mins 
} 

如果3分钟时以毫秒转换1000 * 60 * 3. 如果您想检查日历1晚于日历2,只需在if语句内切换顺序。

再见

+0

感谢您的信息。我明白了,我现在能够做到。 – aresz

0

如果你有两个日期,你可以通过下列条件检查这些:

如果(calendar1.isBefore(CALENDAR2)){// 这里的条件}

,你可以也检查相同的isAfter

或 如果你想检查至少3分钟添加日期,然后comapre他们喜欢:

Calendar calendar = Calendar.getInstance(); calendar.setTime(dat1); calendar.add(Calendar.MINUTE,dat2);

试试这个,让我知道它是否有帮助。

1

您可以通过使用方法 “calendar.getTimeInMillis()”,如下用CALENDAR2比较CALENDAR1:

INT分钟=(int)的((calendar2.getTimeInMillis() - calendar1.getTimeInMillis())/( 1000 * 60));

相关问题