panryz - jemu chodziło o prezentacje danych po wykonaniu różnicy, ale co do JodaTime to też miałem polecić 😃
Oczywiście poniższy kod będzie poprawny jeśli różnica pomiędzy czasami będzie mniejsza niż 24 godziny.
Poniższy kod wykorzystuje JodaTime
DateTime czasStart = DateTime.now();
DateTime czasKoniec = czasStart.plusSeconds(5);
System.out.println(czasKoniec.minus(czasStart.getMillis())
.withZone(DateTimeZone.UTC)
.toString("HH:mm:ss"));
Dzięki 😉
[Dodano: 28.04.2015 - 10:38]
Zmieniłem trochę konwencję - używam TimePickera i mam dziwny problem, którego nie potrafię wyjaśnić. Aplikacja wysypuje mi się w momencie kiedy chcę ustawić dla TimePickera, który jest w dialogu format 24 godzinny. Poniżej wklejam kod
package com.example.grzegorz.worktime2;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;
public class MainActivity extends Activity {
TextView textview1;
TimePicker timepicker1;
TimePicker timepicker2;
Button changetime1;
Dialog settingsDialog;
public void dialogBox() {
settingsDialog = new Dialog(this);
settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
settingsDialog.setContentView(getLayoutInflater().inflate(R.layout.time_picker, null));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dialogBox();
timepicker2 = (TimePicker) findViewById(R.id.timePicker2);
textview1=(TextView)findViewById(R.id.textView1);
timepicker1=(TimePicker)findViewById(R.id.timePicker1);
//Uncomment the below line of code for 24 hour view
timepicker1.setIs24HourView(true);
timepicker2.setIs24HourView(true);
changetime1=(Button)findViewById(R.id.button1);
textview1.setText(getCurrentTime());
changetime1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view) {
settingsDialog.show();
//textview1.setText(getCurrentTime());
}
});
}
public String getCurrentTime(){
long milis =(timepicker1.getCurrentHour()*3600000) + (timepicker1.getCurrentMinute()*1000);
String currentTime="Current Time: "+timepicker1.getCurrentHour()+":"+timepicker1.getCurrentMinute() + "a: " +milis;
return currentTime;
}
}
Program wysypuje się przy linijce nr 38 (jak ją za komentuje to wszystko działa, ale nie mam 24 godzinnego zegara).