计算时间差时,值关闭

时间:2016-06-24 12:33:50

标签: java android time difference

我有一个开始时间和结束时间的时间戳。它在瑞典所以这里是24小时制。如果我将开始时间设置为23:00,将结束时间设置为02:00则应该是3小时的差异。但在这种情况下它的22个小时。

我计算差异这个:

String a =""+Math.abs(diff/(60*60*1000)%24);
String b =""+Math.abs(diff/(60*1000)%60);

如何解决这个问题?

更新

以下是一些代码:

DateFormat formatter = new SimpleDateFormat("HH:mm");

Date date1 = formatter.parse(str_time1);
Date date2 = formatter.parse(str_time2);

long diff = date2.getTime() - date1.getTime();

String a =""+Math.abs(diff/(60*60*1000)%24);
String b =""+Math.abs(diff/(60*1000)%60);

更新2

这是我的timepickerdialog,即使在这里也可能出现错误:

final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);

// Launch Time Picker Dialog
final TimePickerDialog timePickerDialog = new TimePickerDialog(this,
                new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
startworkFrom.setText(hourOfDay + ":" + minute);
                   }
}, mHour, mMinute, true);
timePickerDialog.show();

3 个答案:

答案 0 :(得分:1)

以下是我遇到的问题的解决方案:

series: [{
    name: 'name',
    type: 'spline',
    data: d1,
    tooltip: {
      // format the tooltip to return the y-axis value to two decimal places
      formatter: function() { 
        return this.series.name + ': <b>' + Highcharts.numberFormat(this.y,2) + '%</b>';
      }
    }
}]

答案 1 :(得分:0)

这可能会有所帮助:

  result_time = (end_time - start_time +24) % 24;
  // +24 to avoid the result from going to negative

其中end_time是您的结束时间,即02:00 start_time是开始时间,即23:00 和%是模运算符

答案 2 :(得分:0)

尝试使用kk:mm代替HH:mm

所以将代码更改为:

DateFormat formatter = new SimpleDateFormat("kk:mm");