Countdown funktioniert nicht

TDO88

Bekanntes Mitglied
Hallo Zusammen,

ich schreibe ein Dauerlaufprogramm für bestimmte Hardware.
Im Programm kann ausgewählt werden, ob der Dauerlauf 2, 4, 24, 48 oder 72 Stunden laufen soll, oder ob er per Hand beendet werden soll.
Die verbleibende Zeit, bzw. die verstrichene Zeit möchte ich gerne darstellen. Dazu habe ich folgendes geschrieben

Java:
long start = StartDatum.getTime();
long akt;
long ergebnis;
DateFormat Zeit = new SimpleDateFormat("HH:mm");
String sZeit;
Date erg = new Date();
                     
try
{
      while(runnable)
      {
           akt = System.currentTimeMillis();
           if(jComboBoxTime.getSelectedItem().toString().equals(("Manuell")))
           {
                 ergebnis = akt - start - 3600000;
           }
           else
           {
                 ergebnis = (start + (Laufzeit * 1000)) - akt - 3600000;
           }
                     
                 erg.setTime(ergebnis);
                 sZeit = Zeit.format(erg);
                 jLabelTime.setText(sZeit);
                     
                 Thread.sleep(5000);
           }
}catch(Exception e){
           JOptionPane.showMessageDialog(this, e.getMessage(), "Fehler", JOptionPane.ERROR_MESSAGE);
}

Wenn also in der ComboBox "Manuell" ausgewählt ist, soll die verstichene Zeit angezeigt werden, ansonsten die verbleibende.
Die Variable Laufzeit beinhaltet die Laufzeit in Sekunden. Ich weiß nicht warum, aber wenn ich die 3600000 nicht subtrahiere, wird mir immer eine Stunde zu viel angezeigt.
Das Problem ist jetzt noch:
Wenn der Dauerlauf bspw. 72 Stunden laufen soll, zählt das Programm von 24 Stunden runter, nach den 24 Stunden fängt er wieder bei 24 Stunden an usw.
Wie bekomme ich die Anzeige dahingehend, dass auch wirklich die korrekte Restzeit angezeigt wird?

Gruß

TDO
 

Bitfehler

Bekanntes Mitglied
Über dein SimpleDateFormat gibst du an, dass du die Zeit gerne im Format HH:mm haben möchtest. Dabei kann HH einen Wert zwischen 0 und 24 annehmen, sodass auch keine größere Zahl angezeigt werden kannst.

Hat zwar nichts mit der Frage zu tun, aber vlt solltest du kurz drüber nachdenken, wann deine Schleife abbrechen soll.
 

TDO88

Bekanntes Mitglied
Danke für die Antwort.
Mit dem SimpleDateFormat macht Sinn... Wie kann ich das denn aber sonst am schönsten lösen?

Die Schleife steckt in einem DeamonThread. Am Ende des Programms wird der Thread und somit auch die Schleife beendet, also alles gut
 

Bitfehler

Bekanntes Mitglied
Was spricht denn gegen den einfachen Weg, indem man einfach die beiden Zeiten voneinander abzieht? Dann hat man die Differenz zwischen den beiden Zeiten und das wäre ja dann die Anzeige (in dem einen Anwendungsfall, der andere geht aber ähnlich)

Nachtrag:
Sollte es ein Countdown sein, der gegen Null laufen soll, kann deine Implementierung auch negative Werte annehmen, da die Schleife nicht gebrochen wird.
 

TDO88

Bekanntes Mitglied
Guten Morgen,

das wäre doch dann in ungefähr so oder:

Java:
long start = StartDatum.getTime();
EndeDatum.setTime(StartDatum.getTime() + Laufzeit);
long akt;
long ergebnis;
//DateFormat Zeit = new SimpleDateFormat("HH:mm");
String sZeit;
Date erg = new Date();

try
{
    while(runnable)
    {
        akt = System.currentTimeMillis();
        if(jComboBoxTime.getSelectedItem().toString().equals(("Manuell")))
        {
            ergebnis = akt - start - 3600000;
        }
        else
        {
            //ergebnis = (start + (Laufzeit * 1000)) - akt - 3600000;
            ergebnis = EndeDatum.getTime() - StartDatum.getTime();
        }

        erg.setTime(ergebnis);
        sZeit = erg.toString();
        //sZeit = Zeit.format(erg);
        jLabelTime.setText(sZeit);

        Thread.sleep(5000);
    }
}catch(Exception e)
{
//    JOptionPane.showMessageDialog(TANGO_API.this, e.getMessage(), "Fehler", JOptionPane.ERROR_MESSAGE);
}

Wie bekomme ich das dann jetzt noch schön vormatiert, dass das in einem HH:mm Format steht?

Gruß
TDO
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Mit Countdown Midnestdauer für Teilaufgabenerledigung erzwingen Java Basics - Anfänger-Themen 8
S Stunden/Tage Countdown Java Basics - Anfänger-Themen 9
T Countdown erstellen Java Basics - Anfänger-Themen 7
W Threads 1h 20min Countdown Java Basics - Anfänger-Themen 5
J Countdown Java Basics - Anfänger-Themen 3
D Erste Schritte Countdown mehrfach verwenden Java Basics - Anfänger-Themen 5
F countdown Java Basics - Anfänger-Themen 5
G Countdown von Heute bis Zieldatum Java Basics - Anfänger-Themen 4
N Countdown Java Basics - Anfänger-Themen 4
W Countdown auf "schwarze Blöcke" Java Basics - Anfänger-Themen 3
F Countdown und dann Aktion Java Basics - Anfänger-Themen 4
S Countdown 5min bis 0sek Java Java Basics - Anfänger-Themen 10
C countdown/timer/Zeit warten lassen Java Basics - Anfänger-Themen 14
D Countdown Funktion aus SQl Datenbank Java Basics - Anfänger-Themen 21
N countdown zähl problem Java Basics - Anfänger-Themen 5
O Countdown mit Erhöhung Java Basics - Anfänger-Themen 2
H Countdown Java Basics - Anfänger-Themen 10
T Countdown, der in der selben Zeile bleibt Java Basics - Anfänger-Themen 6
D Timer bzw. Countdown Java Basics - Anfänger-Themen 3
T countdown Methode mit Timer Java Basics - Anfänger-Themen 2
F Countdown Probleme Java Basics - Anfänger-Themen 9
R Countdown erstellen Java Basics - Anfänger-Themen 3
S Countdown auf JPanel ausgeben Java Basics - Anfänger-Themen 6
M Countdown in Java Java Basics - Anfänger-Themen 16
B Countdown zwischen 2 Zeitpunkten Java Basics - Anfänger-Themen 4
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
ms_cikar Bin to Float convertieren funktioniert nicht Java Basics - Anfänger-Themen 24
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
Garrit1994 Continue funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
B Methoden Übergebe Variabel funktioniert nicht Java Basics - Anfänger-Themen 17
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
sserio Rekursion größten Primfaktor finden funktioniert nicht Java Basics - Anfänger-Themen 8
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
M Java printf(Locale.... funktioniert nicht Java Basics - Anfänger-Themen 3
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
T % funktioniert nicht Java Basics - Anfänger-Themen 2
D e(fx)clipse installieren funktioniert nicht Java Basics - Anfänger-Themen 3
D GPIO Nutzung mit Pi4J Library auf Raspberry funktioniert nicht Java Basics - Anfänger-Themen 3
F Java GUI-PaintComponent funktioniert nicht Java Basics - Anfänger-Themen 1
J equals funktioniert nicht - Warum Java Basics - Anfänger-Themen 13
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
G Programm mit Schleife funktioniert nicht Java Basics - Anfänger-Themen 5
T Redirect funktioniert nicht Java Basics - Anfänger-Themen 3
R Mein Plugin funktioniert nicht? Java Basics - Anfänger-Themen 10
J Zufallszahl funktioniert nicht Java Basics - Anfänger-Themen 27
D Klassen add Methode funktioniert nicht. Java Basics - Anfänger-Themen 31
J ImagaIO funktioniert nicht unter Ubuntu Java Basics - Anfänger-Themen 23
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
G Mein Java Projekt funktioniert nicht Java Basics - Anfänger-Themen 5
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
F Primzahlsuche Schleife funktioniert nicht, HILFE! Java Basics - Anfänger-Themen 8
M Methoden Arrays.deepequals() funktioniert nicht Java Basics - Anfänger-Themen 2
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S JDK 9 für Windows 32 bit installiert, aber es funktioniert nix Java Basics - Anfänger-Themen 6
F Input/Output die eine txt-Datei funktioniert die andere nicht Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben