我正在开发警报应用程序,其中多个警报将在其选定时间触发。现在问题是我想计算当前时间和闹钟时间(用户选择的)之间的时差。如何在不使用线程的情况下计算当前时间与用户选择的闹钟时间之间的时差。有没有直接计算时间的时差法?
答案 0 :(得分:0)
这会给你两次的差异。
try {
Date _day = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH).parse(nowTime);
Date day = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH).parse(alarmTime);
double diff = day.getTime() - _day.getTime() ;
double totalMinuts = diff / (60 * 1000);
double leftMinutsAfterHours = totalMinuts % 60;
double totalHours = (totalMinuts - leftMinutsAfterHours) / 60;
double leftHoursAfterDays = totalHours % 24;
double totalDays = (totalHours - leftHoursAfterDays) / 24;
} catch (ParseException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
将时间转换为Calander对象
如果您正在使用TimePickerDialog。
Calander c=Calander.getinstance();
设定小时和小计
然后拿走毫克。
然后采取差异;
long differnce=pickedTimeInMillis- currentTimeInMillis;
long diffenceInSeconds=diffenrce/1000;
int differnceInMin=deffernce/(1000*60)
int differnceInHour=deffernce/(1000*60*60)
或者你可以不用毫秒
Calander currentTime=Calander.getinstance();
hour=c.get(Calendar.HOUR_OF_DAY)
Calander selectedTime=selectedTimeFromCalander;
int differnce=selectedTime.get(Calendar.HOUR_OF_DAY)-hour