Seite 2 von 2
Verfasst: 18.03.2009 10:13
von Kaeru Gaman
Toshy hat geschrieben:Also wie wäre es wenn ihr einfach die date()-Funktion nutzt.
15:05 KeyKon hat geschrieben:Ich würde ohnehin mit Timestamps in Sekunden rechnen weil man dann die Date-Funktionen einfach benutzen kann...
16:33 Radiate hat geschrieben:@KeyKon:
Das funktioniert so nicht da ich Minutengenau rechnen möchte also keine Sekundenangaben brauche.
du siehst, es wird wohl nicht gewünscht.
Verfasst: 18.03.2009 10:21
von Toshy

Ich weiß, aber ich hoffe noch, daß er darauf kommt, da 60 Sekunden ne Minute ergeben *grins*
Also noch mal an den Hilfesucher, die date()-funktion ist genau dafür da, egal ob sekunden, minuten, stunden, Tage oder jahregenau. du muß ja nicht mal mit sekunden rechnen. Alles andere als die date()-Funktion ist Blödsinn für das was du suchst.
Nebenbei mal angemerkt, Arbeitszeiten können auch über den Tageswechsel, also 0 uhr laufen, daß beachtet die date()-funktion schon, ganz einfache Eigene nicht.
Da die Lösung schon zweifach kam kann man den Thread wohl schließen

Verfasst: 18.03.2009 10:29
von Kaeru Gaman
hier wurden noch nie threads geschlossen, nur weil was beantwortet war...

Verfasst: 18.03.2009 10:52
von Kaeru Gaman
> Alles andere als die date()-Funktion ist Blödsinn für das was du suchst.
> über den Tageswechsel, also 0 uhr laufen, daß beachtet die date()-funktion schon, ganz einfache Eigene nicht.
nur weil du lieber eine Aufwendige Funktion aufruft anstatt einen winzigen Algorithmus selber zu schreiben,
heißt das nicht, das es nicht ginge oder das es ungemein kompliziert wäre.
kleine demo:
man braucht nur zwei Ifs um die jeweiligen Overflows zu berücksichtigen:
einmal den Tageswechsel und einmal den Stundenwechsel.
eine unbedingte und zwei bedingte subtraktionen...
also, ich finde das weder kompliziert noch Blödsinn.
Code: Alles auswählen
OpenConsole()
Repeat
;*****************************
PrintN("")
Print("Startzeit: ")
TimeOn$ = Input()
PrintN("")
If LCase(TimeOn$) = "quit"
Break
EndIf
TimeOn = Val(TimeOn$)
;*****************************
PrintN("")
Print("Endezeit: ")
TimeOff$ = Input()
PrintN("")
If LCase(TimeOff$) = "quit"
Break
EndIf
TimeOff = Val(TimeOff$)
;*****************************
;* Dauer berechnen
TimeDur = TimeOff - TimeOn
;* 24h overflow
If TimeOff < TimeOn
TimeDur + 2400
EndIf
;* 60min overflow
If (TimeOff % 100) < (TimeOn % 100)
TimeDur -40
EndIf
;* zu string umformen
TimeDur$ = Str(TimeDur)
;*****************************
PrintN("")
PrintN("Zeitdifferenz: " + TimeDur$)
PrintN("")
ForEver
Verfasst: 18.03.2009 14:49
von KeyKon
Auch wenn es nicht kompliziert is, ist es meiner Meinung nach doch komplizierter als einfach die Date-Funktion zu nutzen...
Aber das soll er machen wie er will, seinen Ansatz fand ich dennoch ziemlich bitter... Ich halt mich hier jetz raus...