Wartezeit in Minuten?

Salohcin

Mitglied
Guten Tag!

Ich wollte mal fragen wie ihr nach Systemzeit einen Zeitstempel setzen würdet, welchen ihr dann nachher mit der aktuellen Zeit subtrahieren könnt, sodass ich den Abstand zwischen den Zeitpunken in Minuten wiedergegeben bekommen kann.

Mein Ansatz war mit date und daraus resultierenden float werten zu arbeiten, aber mit denen lässt sicht das ganze nicht so einfach in int umformen bzw. es kommt gar kein sinnvoller Wert heraus.

Mfg Saloh
 

rme

Top Contributor
Ich benutze für sowas System.nanoTime(). Nicht wegen der Genauigkeit, die der Name suggeriert - Nein, die beträgt meistens trotzdem nur ein paar Hundert Mikrosekunden. Der Grund für die Verwendung ist ein anderer:

System.currentTimeMillis() gibt die aktuelle Uhrzeit des Systems zurück. Diese ist aber nicht stabil - unter UNIX-Systemen läuft zum Beispiel ein NTP-Daemon, der die Zeit ständig mit Zeitserver abgleicht, wodurch die Uhr alle paar Minuten um ein paar Millisekunden geändert werden kann. Auch Situationen wie manuelle Verstellung der Systemzeit oder die Umstellung auf Sommer-/Winterzeit sorgen für falsche Ergebnisse.

System.nanoTime() hat diese Probleme nicht, weil es gar nicht die tatsächliche Uhrzeit zurückgeben will, sondern sich auf irgendeinen implementierungsabhängigen Referenzpunkt bezieht, der aber stabil ist - ein einzelner Wert ansich ist also nutzlos, dafür sind Differenzen zwischen zwei Messungen stabil. Diese Methode ist speziell für Zeitmessungen vorgesehen, während currentTimeMillis eher eine Variante ist, die aktuelle Uhrzeit zu bekommen.
 
Zuletzt bearbeitet:

Salohcin

Mitglied
Ich hatte da so einen ähnlichen Ansatz allerdings sind die Werte immer unsinnig (arbeite hier mit Blue J --> warte ein paar Sekunden, dann aktivier ich zweitZeit(); und kurz drauf diffToSecs();):
Java:
public class nanoTime
{
    // instance variables - replace the example below with your own
    long x;
    long y;
    long t;
    long minuten;
    long stunden;
    /**
     * Constructor for objects of class nanoTime
     */
    public nanoTime()
    {
        x = System.nanoTime();
    }
    
    public void zweitZeit()
    {
        y = System.nanoTime();
    }
    
    public void difToSecs()
    {
        x = x/1000/1000/1000;
        y = y/1000/1000/1000;
        long t = y-x; 
        t = t/1000/1000/1000;//sek
        minuten = t/60;
        stunden = minuten/60;
    }
}
Saloh
 

rme

Top Contributor
Du rechnest in difToSecs x und y von Nanosekunden in Sekunden um, bildest die Differenz, die dann natürlich auch in Sekunden ist - und wandelst dann nochmal um, obwohl es bereits Sekunden sind? Das Ergebnis dürfte dann immer 0 sein, weil long keine Kommazahlen abbilden kann und du vermutlich nicht länger als 1000 * 1000 * 1000 Sekunden gewartet hast ;)

Also: Erst Differenz bilden, dann teilen. (y - x) / (1000 * 1000 * 1000). Am besten in double rechnen und 1000.0 nehmen, dann hast du auch Nachkommastellen :)
 

Salohcin

Mitglied
Du rechnest in difToSecs x und y von Nanosekunden in Sekunden um, bildest die Differenz, die dann natürlich auch in Sekunden ist - und wandelst dann nochmal um, obwohl es bereits Sekunden sind? Das Ergebnis dürfte dann immer 0 sein, weil long keine Kommazahlen abbilden kann und du vermutlich nicht länger als 1000 * 1000 * 1000 Sekunden gewartet hast ;)

Also: Erst Differenz bilden, dann teilen. (y - x) / (1000 * 1000 * 1000). Am besten in double rechnen und 1000.0 nehmen, dann hast du auch Nachkommastellen :)

Danke! :D
 

njans

Top Contributor
Mal ein Beispiel:
Java:
		long start = System.nanoTime();
		Thread.sleep(2000);
		long end = System.nanoTime();
		
		long difference = end - start;
		System.out.println("Milli Sek: " + 	(difference/ (1000L * 1000L)));
		System.out.println("Seconds: " + 	(difference/ (1000L * 1000L * 1000L)));
		System.out.println("Minutes: " + 	(difference/ (1000L * 1000L * 1000L * 60L)));
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
I Java Mail Timeout erst nach rund 5 Minuten? Java Basics - Anfänger-Themen 9
F Minuten herunterzählen Java Basics - Anfänger-Themen 14
K Wie kann man diesen Code schnell und effizient interpretieren (Man hat nur 4 Minuten) Java Basics - Anfänger-Themen 3
T Erste Schritte Schreiben Sie eine Klasse Zeit, die eine Zeitdauer in Minuten beschreibt. Die Anzahl Minuten verwalt Java Basics - Anfänger-Themen 3
T Jahre, Monate, Tage, Stunden, Minuten Java Basics - Anfänger-Themen 1
H Erste Schritte Uhrzeit anzeigen in Minuten Dezimal Java Basics - Anfänger-Themen 8
D rechnen mit Stunden und Minuten Java Basics - Anfänger-Themen 14
R Minuten umrechnen. Java Basics - Anfänger-Themen 9
T Java Applet braucht mehrere Minuten zu Start Java Basics - Anfänger-Themen 5
G Millisekunden in Minuten und Sekunden umwandeln Java Basics - Anfänger-Themen 12
W OOP Datum aus Access in Textfeld schreiben ohne Stunden/Minuten/Sekunden Java Basics - Anfänger-Themen 2
N Laufzeit in Nanosekunden - in Minuten umrechnen Java Basics - Anfänger-Themen 6
O Funktion alle 5 minuten ausführen Java Basics - Anfänger-Themen 7
G Uhrzeit hh:mm:ss in minuten umrechnen Java Basics - Anfänger-Themen 4
G Stunden und Minuten Java Basics - Anfänger-Themen 11
G Timestamp in Minuten umrechnen Java Basics - Anfänger-Themen 8
G Datum - 2 Minuten addieren Java Basics - Anfänger-Themen 4
G Auf eine Uhrzeit xx Minuten addieren u. mit Akt. Zeit vergl. Java Basics - Anfänger-Themen 5
M Stunden, Minuten, Sekunden als Integer-Variablen, wie? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben