Hallo Leute,
Ich stehe zurzeit vor einem Problem.
Ich berechne zunächst die Differenz zwischen zwei Uhrzeiten, danach möchte ich dies ausgeben.
Auf der Konsole funktioniert das zwar aber ich möchte die Differenz jede Sekunde aktualisieren.(wie ein Coundtdown)
Mein Problem ist jetzt bei der aktualisierung.
Mein Code zur Differenzberechnung:
TimeDifferenz
Es geht immer um 6 Uhrzeiten, von denen die Differenz zur aktuellen Zeit berechnet werden soll.
Also z.B: aktuelle Zeit: 15.00Uhr ; andere Zeit: 15:30Uhr; Ausgabe: 00:30:00
So es geht ja um sechs Zeiten. Die werden zunächst geprüft welche Zeit am nähesten zur aktuellen Zeit ist und dann die Differenz ausgerechnet:
TimeCalculator
Hierbei ist getImsak in Zeile 10 zum Beispiel eine von den sechs Zeiten.
So jetzt wieder zur Problemstellung:
Mein Ansatz bis jetzt mit Timer, der aber nicht Funktioniert:
Main
Ich weiß jetzt nicht wie ich weiter machen soll.
Vielen Dank im voraus.
Ich stehe zurzeit vor einem Problem.
Ich berechne zunächst die Differenz zwischen zwei Uhrzeiten, danach möchte ich dies ausgeben.
Auf der Konsole funktioniert das zwar aber ich möchte die Differenz jede Sekunde aktualisieren.(wie ein Coundtdown)
Mein Problem ist jetzt bei der aktualisierung.
Mein Code zur Differenzberechnung:
TimeDifferenz
Java:
public class TimeDifference {
private String time;
private int stunden;
private int minuten;
private int sekunden;
LocalTime localtime = new LocalTime();
public String getDifference(String t) {
Seconds seconds = Seconds.secondsBetween(localtime, LocalTime.parse(t));
stunden = seconds.getSeconds() / 3600;
minuten = (seconds.getSeconds() - stunden * 3600) / 60;
sekunden = (seconds.getSeconds() - (stunden*3600) - (minuten*60));
time = String.format("%02d:%02d:%02d",stunden, minuten,sekunden);
return time;
}
Es geht immer um 6 Uhrzeiten, von denen die Differenz zur aktuellen Zeit berechnet werden soll.
Also z.B: aktuelle Zeit: 15.00Uhr ; andere Zeit: 15:30Uhr; Ausgabe: 00:30:00
So es geht ja um sechs Zeiten. Die werden zunächst geprüft welche Zeit am nähesten zur aktuellen Zeit ist und dann die Differenz ausgerechnet:
TimeCalculator
Java:
public class TimeCalculater {
NamazTimes nz = new NamazTimes();
TimeDifference td = new TimeDifference();
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
private String nowDate = sdf.format(date);
public void Calculate() throws ParseException, IOException {
if(nowDate.compareTo(nz.getImsak())< 0) {
td.getDifference(nz.getImsak());
}
if(nowDate.compareTo(nz.getImsak())==0)
{
System.out.println("Ezan Imsak!");
}
if(nowDate.compareTo(nz.getImsak())> 0) { // prüfen ob Zeit größer als Imsak, dann..
if(nowDate.compareTo(nz.getGunes())< 0) {
td.getDifference(nz.getGunes());
}
}
if(nowDate.compareTo(nz.getGunes())== 0)
{
System.out.println("Ezan Günes!");
}
if(nowDate.compareTo(nz.getGunes())> 0) {
if(nowDate.compareTo(nz.getOegle()) < 0) {
td.getDifference(nz.getOegle());
}
}
if(nowDate.compareTo(nz.getOegle()) == 0) {
System.out.println("Ezan Öyle");
}
if(nowDate.compareTo(nz.getOegle())> 0) {
if(nowDate.compareTo(nz.getIkindi()) < 0) {
td.getDifference(nz.getIkindi());
}
}
if(nowDate.compareTo(nz.getIkindi()) == 0) {
System.out.println("Ezan Ikindi");
}
if(nowDate.compareTo(nz.getIkindi())> 0) {
if(nowDate.compareTo(nz.getAksam()) < 0) {
td.getDifference(nz.getAksam());
}
}
if(nowDate.compareTo(nz.getAksam()) == 0) {
System.out.println("Ezan Aksam");
}
if(nowDate.compareTo(nz.getAksam())> 0) {
if(nowDate.compareTo(nz.getYatsi()) < 0) {
td.getDifference(nz.getYatsi());
}
}
}
Hierbei ist getImsak in Zeile 10 zum Beispiel eine von den sechs Zeiten.
So jetzt wieder zur Problemstellung:
Mein Ansatz bis jetzt mit Timer, der aber nicht Funktioniert:
Main
Java:
JFrame frame = new JFrame("EzanTime");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JLabel uhrzeit = new JLabel("---");
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
uhrzeit.setText(tc.Calculate());
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
timer.start();
frame.add(uhrzeit);
frame.pack();
frame.setVisible(true);
Ich weiß jetzt nicht wie ich weiter machen soll.
Vielen Dank im voraus.
Zuletzt bearbeitet: