Zeitberechnung

Status
Nicht offen für weitere Antworten.

PePsO

Mitglied
Guten Tag,
Ich habe versucht, eine Datei zu schreiben, die die differenz zwischen der Aktuelle Zeit(Akze) und einer Zeit zu der ein Termin stattfindet berechnet.
Jedoch kann ich hier ledeglich mit kommazahlen arbeiten, mit der ich keine genaue minutenangabe bekommen.
Wie könnte ich eine genaue Minutenangabe bekommen?
Hier dann erst einmal mein Versuch:


  • import java.io.*;
    class Clock
    {
    public static void main(String [] args) throws IOException
    {
    Clock c1 = new Clock();
    c1.Zeit();
    c1.Rest();

    }

    //Attribute
    double Akze;
    double Anze;
    double Rest;
    BufferedReader br;

    public Clock() throws IOException
    {
    br= new BufferedReader(new InputStreamReader(System.in));

    }
    void Zeit() throws IOException
    {
    System.out.println("Geben sie die Aktuelle Zeit ein:");
    this.Akze=Double.parseDouble(br.readLine());
    System.out.println("");
    System.out.println("Geben sie die Ankunftszeit ein:");
    this.Anze=Double.parseDouble(br.readLine());
    }
    void Rest()
    {
    System.out.println("Startzeit:" +this.Akze +"Uhr");
    System.out.println("Endzeit:" +this.Anze +"Uhr");
    this.Rest=this.Anze-this.Akze;
    System.out.println("Ihre Restzeit beträgt:" +this.Rest +"Stunden");
    }
    }


Vielen dank im Vorraus

MfG
PePsO
 
S

SlaterB

Gast
was gibt denn der User da für Zeiten ein, das verrätst du ja gar nicht,

8,2 für 8 Uhr 12 Min?

jedenfalls musst du da kräftig rechnen,
am besten jede eingegeben Zeit für sich in Minuten oder Sekunden umwandeln, diese als Ganzzahl subtrahieren und Ergebnis zurückrechnen,
je nach Eingabe kann dich vielleicht Java unterstützen, wahrscheinlich musst du es aber selber machen,

0,2 * 60 = 12 Min. ist aber auch kein Aufwand oder?
 

PePsO

Mitglied
Also, es geht um Zahlen wie 8,2 das ist richtig.
Und natürlich ist es kein Problem das so um´zurechnen, jedch würde ich gerne Wissen,
ob es eine Java funktion dafür gibt, denn das wäre dann ja ein wenig "schöner".

Aber vielen Dank für deine Hilfe
 
S

SlaterB

Gast
wenn es nur bei 'Stunden, Anteil von Stunden' bleibt,
dann kannst du eigentlich auch diese erst subrahieren
und dann umrechnen:

8,3-8,2 = 0,1 -> 0,1 * 60 = 6 Min. (evtl. noch geschickt runden bei 5,999997)

sone einfache Rechnung kann man in keiner API finden
 

The_S

Top Contributor
Wenn du z. B. die Zeit so bekommst

h,mm bzw. h,m => Also z. B. 7,33 bzw. 7,5 und dafür 7 Stunden 19,8 Minuten bzw. 7 Stunden 30 Minuten haben möchtest, könntest du z. B. so rechnen:

Code:
double zeit = 7.5;
int stunden = (int)zeit;
double minuten = zeit * 60 % 60;

[edit] ups, da war ich ja viel zu langsam :oops:
 

PePsO

Mitglied
Erst einmal vielen Dank für eire Anregungen.

Jedoch suche ich eher nach einer Methode mit der ich die Uhrzeit so angeben kann: 17:46
Im moment ist diese Eingabe leider auf 17,5 beschränkt.
 

The_S

Top Contributor
Hä? Also umgekehrt oder wie? Also der User gibt 17:30 ein, und du bekommst einen double mit dem Wert 17,5!? Meinen Post oben hast du gesehen? Rückwärts sollte das ja auch kein Problem sein ;) .
 
S

SlaterB

Gast
das sieht schon ganz anderes aus,
eine derartige Eingabe kannst du mit SimpleDateFormat in ein Date-Objekt umwandeln,
dann am besten mit date.getTime() rechnen,

wenn du aber Differenz = 500000 ms hast, dann ist die Umrechnung auch nicht ganz leicht,
im Bereich von < einem Tag kannst du noch Date verwenden,
musst evtl. noch die Zeitzone beachten,
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben