从 2 个 TimePickers 中获取值并进行比较
Getting values from 2 TimePickers and comparing them
在我的应用程序中,我在 activity 中设置了 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 分钟。我如何实现这一目标?另外,编写此代码的更好方法是什么?
感谢任何帮助。
如果你有两个日期,你可以通过以下条件来检查它们:
if(calendar1.isBefore(calendar2)){
// conditions here
}
你也可以检查 isAfter
或
如果您想检查至少 3 分钟,请添加日期,然后像这样比较它们:
Calendar calendar = Calendar.getInstance();
calendar.setTime(dat1);
calendar.add(Calendar.MINUTE, dat2);
试试这个,如果有帮助请告诉我。
您可以使用方法 "calendar.getTimeInMillis()" 比较 calendar1 和 calendar2,如下所示:
int 分钟 = (int) ((calendar2.getTimeInMillis()-calendar1.getTimeInMillis())/(1000 * 60)) ;
假设您希望 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
}
其中三分钟转换为毫秒 1000 * 60 * 3。
如果您想晚于 calendar2 检查 calendar1,只需在 if 语句中切换顺序即可。
再见
在我的应用程序中,我在 activity 中设置了 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 分钟。我如何实现这一目标?另外,编写此代码的更好方法是什么?
感谢任何帮助。
如果你有两个日期,你可以通过以下条件来检查它们:
if(calendar1.isBefore(calendar2)){ // conditions here }
你也可以检查 isAfter
或 如果您想检查至少 3 分钟,请添加日期,然后像这样比较它们:
Calendar calendar = Calendar.getInstance(); calendar.setTime(dat1); calendar.add(Calendar.MINUTE, dat2);
试试这个,如果有帮助请告诉我。
您可以使用方法 "calendar.getTimeInMillis()" 比较 calendar1 和 calendar2,如下所示:
int 分钟 = (int) ((calendar2.getTimeInMillis()-calendar1.getTimeInMillis())/(1000 * 60)) ;
假设您希望 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
}
其中三分钟转换为毫秒 1000 * 60 * 3。 如果您想晚于 calendar2 检查 calendar1,只需在 if 语句中切换顺序即可。
再见