Rechnung/Formel von Arbeitszeiten

Für allgemeine Fragen zur Programmierung mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag 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 :-)
1. Win10
PB6.1
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hier wurden noch nie threads geschlossen, nur weil was beantwortet war... /:->
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag 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...
(\/) (°,,,°) (\/)
Antworten