gpt4 book ai didi

java - 当计算时差时,值关闭

转载 作者:行者123 更新时间:2023-11-30 10:42:41 26 4
gpt4 key购买 nike

我有一个开始时间和结束时间的时间选择器。它在瑞典,所以这里是 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

这是我的时间选择器对话框,也许错误甚至从这里开始:

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

最佳答案

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

public int theTimeMachineHours(EditText a, EditText b) throws Exception{
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
Date startDate = simpleDateFormat.parse(a.getText().toString());
Date endDate = simpleDateFormat.parse(b.getText().toString());

long difference = endDate.getTime() - startDate.getTime();
if(difference<0)
{
Date dateMax = simpleDateFormat.parse("24:00");
Date dateMin = simpleDateFormat.parse("00:00");
difference=(dateMax.getTime() -startDate.getTime() )+(endDate.getTime()-dateMin.getTime());
}
int days = (int) (difference / (1000*60*60*24));
int hours = (int) ((difference - (1000*60*60*24*days)) / (1000*60*60));
int min = (int) (difference - (1000*60*60*24*days) - (1000*60*60*hours)) / (1000*60);

return hours;
}

关于java - 当计算时差时,值关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38013579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com