![]() |
Sekunden -> Tage, Stunden, Minuten, Sekunden
Hi @ll.
ich glaube ich hab' im Moment 'n' betrr vorm Kopf. Ich will eine riesige Sekundenzahl als Tage, Stunden, Minuten und Sekunden ausgeben. Alle meine versuche sind in völligen Fehlergebnissen untergegangen :wall: Eigentlich will ich das in JavaScript machen. Aber wenn ihr es schafft mir das Prinzip klarzumschen (im Zweifellsfall mit Delphi) kann ich das darauf "portieren". Also biiittet biittte hilfe, auch wenn das echt mal billig ist. |
Re: Sekunden -> Tage, Stunden, Minuten, Sekunden
Überlegen wir doch mal. Wie viele Sekunden hat ein Tag:
Sekunden pro Minute * Minuten pro Stunde * Stunden pro Tag Teile ich nun die Sekunden durch diesen Wert, ergibt der ganzzahlige Anteil die Tage. Der Rest nach dem Komma wieder Sekunden... |
Re: Sekunden -> Tage, Stunden, Minuten, Sekunden
Delphi-Quellcode:
procedure SecondstoTime(const input:int64; var days, hours, mins, seconds: integer);
begin days:= trunc(input/86400); //oder input div 86400 hours:= trunc(input/3600) mod 24 minutes:= trunc(input/60) mod 60; secs:= input mod 60; end; |
Re: Sekunden -> Tage, Stunden, Minuten, Sekunden
Ein Tag hat 86400 Sekunden. Eine Stunde hat 3600 Sekunden. Eine Minute hat 60 Sekunden.
Daraus folgt:
Delphi-Quellcode:
//edit :oops: Da war wohl jemand schneller als ich und auch noch ne bessere Loesung :oops: :oops:
//...
//Tage Tage := SecGes div 86400; SecGes := SecGes mod 86400; //Stunden Stunden := SecGes div 3600; SecGes := SecGes mod 3600; //Minuten Minuten := SecGes div 60; Sekunden := SecGes; //... |
Re: Sekunden -> Tage, Stunden, Minuten, Sekunden
Was bedeutet mod :gruebel:
|
Re: Sekunden -> Tage, Stunden, Minuten, Sekunden
Vor den Fragen bitte immer erst in der Hilfe gucken, da steht es nämlich drinne.
|
Re: Sekunden -> Tage, Stunden, Minuten, Sekunden
thx euch allen!
Ich ahbe mich dazu entschlossen Phistev's Lösung umzusetzen, weil die am kürtzesten ist:
Code:
Scheint zu laufen!
function formatTime(sec)
{ var result =new String(""); result += (Math.floor(sec/86400)) +" Tag(e) "; result += (Math.floor(sec/3600) % 24) +":"; result += (Math.floor(sec/60) % 60) +":"; result += (sec % 60); return result; } Acuh den anderen danke, ihr habt zu meinem Verständnis beigetragen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz