2016-06-24 4 views
2

私は開始時間と終了時間のタイムピッカーを持っています。それはスウェーデンにありますのでここに24時間制です。開始時刻を23:00に設定し、終了時刻を02:00に設定すると、3時間の違いがあります。しかし、この場合は22時間です。 時間差が計算されると値はオフになります

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

はどのようにこれを固定することができます。

私はこのliteの違いを計算しますか? 2ここで

は私timepickerdialog、多分エラーはここでも開始され

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

UPDATE:

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

私はここでエラーを発見していません。 ** startworkFrom.setText(hourOfDay + ":" + minute); **正しい値を出力しましたか? –

+0

私は時間00:00を選ぶと0:0になり、それは正しいとは言えません。 – mogren3000

+0

Btw、単純なint比較で時間をチェックして比較することができるのであれば、なぜDateFormatとDateを使うのですか?ちょっと興味があるんだけど。 –

答えて

関連する問題