für die Berechnung der Dauer eines Programmlaufes benötige ich eure Hilfe. Ich habe zwei Felder in denen die Anfangs- und die Endezeit steht. Die Felder haben den Aufbau HHMMSS. Wie kann ich nun durch eine Formel berechnen wie lange das Programm in Minuten gelaufen ist. Wichtig wäre bei der Berechnung auch, daß der Tageswechsel (Nachts) berücksichtigt wird.
Ich habe zwar auch schon rumgerechnet aber irgendwie fehlen mir am Ende immer ein paar Minuten.
wenn du die bereiche HH, MM und SS jeweils einer (byte-)zahl zuordnest (nennen wir sie h1,m1 und s1 für feld1 sowie h2,m2,s2 für feld2), und dann die zahl t1 als
t1=h1*3600+m1*60+s1 sowie t2 als
t2=h2*3600+m2*60+s2 berechnest,
dann wird die differenz d=t2-t1 ein positiver wert sein, der die anzahl der abgelaufenen sekunden darstellt.
ganz einfach eigentlich.
jetzt kannst du ein drittes feld aufbauen aus h3,m3 und s3 wobei
h3=abgerundet(d/3600)
m3=abgerundet((d-h3*3600)/60)
s3=d-h3*3600-m3*60
gilt. das wäre dann zusammen die abgelaufene zeit im format HHMMSS.
du musst das HHMMSS-feld natürlich korrekt in h,m uns s überführen können und zurück. dazu bietet jede programmiersprache beispielsweise einfache schneide- und konvertierungs-funktionen für zeichenketten
möglicherweise hat deine programmiersprache aber eine entsprechende methode für zeit-werte mit eingebaut?
dem tageswechsel (aber nur EINEM tageswechsel) kommst du auf die spur, wenn d eine negative zahl wird.
dann solltest du einfach noch 86400 (sekunden eines tages) drauf rechnen
beispiel:
if d>0 then
begin
writeln(‚es sind ‚,d,‘ sekunden vergangen.‘)
end
else
begin
d:=d+86400
writeln(‚es sind ein tag und ‚,d,‘ sekunden vergangen‘)
end
not testified!
grüsse, bs
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]