Zeitspanne bis zur nächsten Uhrzeit

Fohnbit

Top Contributor
Hallo,

ich bekomme einen String mit "7:15" oder "22:00".
Nun möchte ich einen Timer setzen, damit zu diesem Zeitpunkt etwas getriggert wird.
Soweit habe ich:
Java:
    private long calculateTimeSpan(String sTime) {
        Calendar timeSpan = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
        try {
            timeSpan.set(Calendar.HOUR_OF_DAY, sdf.parse(sTime).getHours());
            timeSpan.set(Calendar.MINUTE, sdf.parse(sTime).getMinutes());
            timeSpan.set(Calendar.SECOND, 0);
            timeSpan.set(Calendar.MILLISECOND, 0);
        } catch (ParseException e) {
            e.printStackTrace();
            return -1;
        }

        long diff = timeSpan.getTimeInMillis() - System.currentTimeMillis();
        if (diff < 1) {
            timeSpan.add(Calendar.DATE, 1);
            diff = timeSpan.getTimeInMillis() - System.currentTimeMillis();
        }

        System.out.println(diff);
        return diff;

    }

Das sollte so passen denk ich. Aber "getHours" und "getMinutes" sollte man nimmer nehmen, oder?
Und gibt es einen besseren Weg den String zu parsen? Ich habe bemerkt das wenn 25:06 eingeben wird, er das Datum um eins hochsetzt.
Ich könnte den String spliten mit ":" und die 2 String in Int konvertieren und min/max prüfen.

Aber eventuell geht es eleganter?

Danke!
 

mrBrown

Super-Moderator
Mitarbeiter
Am einfachsten dürfte das mit zb LocalTime.parse("22:00") klappen.
LocalTime.parse("25:00") würde dann eine Exception werfen, da keine passende Uhrzeit.

Die Differenz dann zb mit #Duration.between(..)
 

Fohnbit

Top Contributor
Hallo,

danke ... kommt fast hin:
Java:
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm");
        Temporal date = LocalTime.parse(sTime, dtf);
        System.out.println(date);
        Temporal now = LocalTime.now();
        System.out.println(now);
        System.out.println(Duration.between(date, now).getSeconds());

Jedoch bekomme ich eine Exception wenn ich die Zeit nicht 2-stellig übergebe:
09:02 ok
9:02 Fehler
09:2 Fehler

Kann man das leicht abfangen?
 

Fohnbit

Top Contributor
Vielen Dank :)

Kann man die Zeitspanne eigentlich nicht auf die Millisekunde berechnen?
Java:
    private long calculateTimeSpan(String sTime) {
        try {
            DateTimeFormatter dtf = DateTimeFormatter.ofPattern("H:m");
            Temporal date = LocalTime.parse(sTime, dtf);
            Temporal now = LocalTime.now();
            long diff = Duration.between(now, date).getSeconds() * 1000;
            if (diff < 1) {
                diff = diff + (24 * 60 * 60 * 1000);
            }
            return Duration.between(date, now).getSeconds() * 1000;
        } catch (DateTimeParseException e) {
            System.out.println(e.getMessage());
            return -1;
        }
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Zeitspanne in Tagen berechnen Java Basics - Anfänger-Themen 3
T Zeitspanne berechnen Java Basics - Anfänger-Themen 8
S Zeitspanne in Sekunden Java Basics - Anfänger-Themen 3
S Zeitspanne in Sekunden Java Basics - Anfänger-Themen 4
G Berechnung einer Zeitspanne Java Basics - Anfänger-Themen 3
J Auf den nächsten Zehner runden? Java Basics - Anfänger-Themen 4
C Nächsten Montag ermitteln Java Basics - Anfänger-Themen 19
A Datentypen Nächsten freien index eines arrays finden Java Basics - Anfänger-Themen 5
C Übergeben von Variablen von einem Objekt zum nächsten Java Basics - Anfänger-Themen 5
G datum des nächsten tages Java Basics - Anfänger-Themen 3
T Datum und Uhrzeit Java Basics - Anfänger-Themen 4
S Uhrzeit Rechnung Java Basics - Anfänger-Themen 8
A Frage zur Aufgabe Uhrzeit einstellen mit Objekten Java Basics - Anfänger-Themen 18
OlafHD Java Uhrzeit aktualisiert sich nicht Java Basics - Anfänger-Themen 2
A veränderliche Uhrzeit einmalig speichern Java Basics - Anfänger-Themen 3
F Thread um Uhrzeit ausführen Java Basics - Anfänger-Themen 5
I Java Uhrzeit Java Basics - Anfänger-Themen 2
2 Uhrzeit und Datum aktualisieren Java Basics - Anfänger-Themen 12
M Datum in Millisekunden allerdings ohne Uhrzeit Java Basics - Anfänger-Themen 4
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
H Erste Schritte Sekunden in Uhrzeit Java Basics - Anfänger-Themen 7
H Erste Schritte Aktuelle Uhrzeit auslesen Java Basics - Anfänger-Themen 64
H Erste Schritte Uhrzeit anzeigen in Minuten Dezimal Java Basics - Anfänger-Themen 8
D currentTimeMillis Uhrzeit Java Basics - Anfänger-Themen 8
K Datum und Uhrzeit als Date Objekt Java Basics - Anfänger-Themen 10
Blindxantos Datentypen Uhrzeit in einem Attribut speichern Java Basics - Anfänger-Themen 3
G Uhrzeit als String in Integer (HH:MM:SS) Java Basics - Anfänger-Themen 5
B Von Uhrzeit 5 min abziehen Java Basics - Anfänger-Themen 5
B Uhrzeit vom Benutzer eingeben lassen. Java Basics - Anfänger-Themen 5
E Datum und Uhrzeit von UTC in MET umrechnen Java Basics - Anfänger-Themen 6
E Methoden Datum , Uhrzeit, Nachricht in txt Datei schreiben Java Basics - Anfänger-Themen 3
S Millisekunden in Datum/Uhrzeit wandeln Java Basics - Anfänger-Themen 11
S Rechnen mit Datum bzw. Uhrzeit Java Basics - Anfänger-Themen 3
P double in Uhrzeit umwandeln Java Basics - Anfänger-Themen 10
D Meldung zu bestimmter Uhrzeit Java Basics - Anfänger-Themen 9
F Uhrzeit von Webseite Java Basics - Anfänger-Themen 7
K String.matches Uhrzeit Java Basics - Anfänger-Themen 2
M mit Uhrzeit rechnen Java Basics - Anfänger-Themen 11
G Date von heute mit Uhrzeit erzeugen Java Basics - Anfänger-Themen 9
R Uhrzeit in JFrame anzeigen Java Basics - Anfänger-Themen 12
B XML? Für Uhrzeit und Datum für mein HP? Java Basics - Anfänger-Themen 6
L Dateiname mit Uhrzeit Java Basics - Anfänger-Themen 26
A Uhrzeit und Datum Java Basics - Anfänger-Themen 10
J uhrzeit programmieren Java Basics - Anfänger-Themen 5
C Anzahl der Sekunden aus Uhrzeit extrahieren Java Basics - Anfänger-Themen 6
P Uhrzeit für die Klasse Minute umwandeln. Java Basics - Anfänger-Themen 3
G Datum / Uhrzeit? Java Basics - Anfänger-Themen 3
G Uhrzeit hh:mm:ss in minuten umrechnen Java Basics - Anfänger-Themen 4
G problem mit uhrzeit Java Basics - Anfänger-Themen 8
D Probleme mit dem Datum / Uhrzeit Java Basics - Anfänger-Themen 3
T Uhrzeit und Zeitzone? Java Basics - Anfänger-Themen 3
C Uhrzeit auslesen Java Basics - Anfänger-Themen 6
S long millisekunden nach Uhrzeit format Java Basics - Anfänger-Themen 5
O uhrzeit mit einander vergleichen Java Basics - Anfänger-Themen 10
G Datum und Uhrzeit in einem String suchen und ausgeben Java Basics - Anfänger-Themen 2
M Uhrzeit Variable aus TimeTask in jTextField anzeigen Java Basics - Anfänger-Themen 4
P JOptionPane bei bestimmter Uhrzeit anzeigen Java Basics - Anfänger-Themen 2
T Event zu bestimmter Uhrzeit auslösen ? Java Basics - Anfänger-Themen 5
G Auf eine Uhrzeit xx Minuten addieren u. mit Akt. Zeit vergl. Java Basics - Anfänger-Themen 5
V Uhrzeit Java Basics - Anfänger-Themen 8
H Uhrzeit wird nicht aktualisiert Java Basics - Anfänger-Themen 15
K Datum und Uhrzeit erfragen Java Basics - Anfänger-Themen 3
G Datum und Uhrzeit in Sekunden konvertiern Java Basics - Anfänger-Themen 4
C aus string-file uhrzeit auslesen?? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben