【问题标题】:Time Difference Calcuation, android时差计算,安卓
【发布时间】:2016-11-01 06:47:37
【问题描述】:

我正在开发警报应用程序,其中多个警报将在他们选择的时间触发。现在的问题是我想计算当前时间和闹钟时间(用户选择的时间)之间的时间差。如何在不使用线程的情况下计算当前时间与用户选择的闹钟时间之间的时间差。有没有直接计算时间的时差法?

【问题讨论】:

标签: android time difference


【解决方案1】:

这会给你两次之间的差异。

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();
}

【讨论】:

  • 感谢 vidulaJ。这是迄今为止我找到的最好的解决方案。我已经实施并且工作正常。
  • 太棒了!很高兴知道!
【解决方案2】:

将时间转换为 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)

或者你可以不服用millis来做

Calander currentTime=Calander.getinstance();
hour=c.get(Calendar.HOUR_OF_DAY)
Calander selectedTime=selectedTimeFromCalander;

int differnce=selectedTime.get(Calendar.HOUR_OF_DAY)-hour

【讨论】:

  • 请检查。我没有测试它,只是写了。取绝对值,小时是 12 小时格式,所以你想用 Am 或 Pm 检查它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
相关资源
最近更新 更多