ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
2131
2131
EMPFEHLEN
-
Hallo!
Ich suche eine Funktion, die mir eine gegebene Sekundenanzahl in Jahre, Monate, Tage, Stunden, Minuten, Sekunden ausgibt.
Also angenommen ich habe 31 536 000 sekunden gegeben, sollte die funktion ausgeben: 1 Jahr, 0 Monate, 0 Tage, etc.
Hat jemand von euch eine Funktion bei der Hand oder eine Idee wie ich die Funktion realisieren kann?
Vielen Dank im Voraus!
Gruß,
Ordi
-
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
function funktion(intSec) { arrParts = [ [31536000,' Jahr','e'], [2592000,' Monat','e'], [86400,' Tag','e'], [3600,' Stunde','n'], [60,' Minute','n'], [1,' Sekunde','n'] ]; for(j = 0; j < arrParts.length; ++j) { strPart = parseInt((intSec / arrParts[j][0]).toString(2)) + arrParts[j][1]; strPart += (parseInt(intSec / arrParts[j][0]) != 1)?arrParts[j][2]:''; intSec = intSec%arrParts[j][0]; arrParts[j] = strPart; } return(arrParts.join(', ')); }
-
Vielen Dank!
Funktioniert hervorragend!
Gruß,
Ordi
-
Stimmt doch nicht ganz...
86501 Sekunden ergibt zum Beispiel:
0 Jahre, 0 Monate, 1 Tag, 0 Stunden, 1 Minute, 101001 Sekunden
Ähnliche Fehler treten noch an ähnlichen Stellen auf.
Gibt es eine Möglichkeit diese Fehler zu korrigieren?
-
Ersetze die for-Schleife mal durch:
Code :1 2 3 4 5 6 7
for(j = 0; j < arrParts.length; ++j) { strPart = (j == arrParts.length-1)?intSec:parseInt((intSec / arrParts[j][0]).toString(2)); strPart += arrParts[j][1]; strPart +=(parseInt(intSec / arrParts[j][0]) != 1)?arrParts[j][2]:''; intSec = intSec%arrParts[j][0]; arrParts[j] = strPart; }
-
auch falsch, mein oben genanntes beispiel funktioniert zwar jetzt aber zum bsp 99999 sekunden ergibt: 0 Jahre, 0 Monate, 1 Tag, 11 Stunden, 101110 Minuten, 39 Sekunden.
ich versuch zwar auch den fehler zu finden, hab aber probleme das script nachzuvollziehen.
gruß,
ordi
-
Dann versuchs weiter
-
hast du keine idee mehr?
-
Das Problem ist, dass Javascript je nach Belieben ein Rechnungsergebnis auch mal in Exponentialschreibweise liefert....dann kommen merkwürdige Ergebnisse heraus, wenn damit weitergerechnet wird.
Letzter Versuch:
Code :1 2 3 4 5 6 7 8 9
for(j = 0;j < arrParts.length; ++j) { strPart = (String(intSec / arrParts[j][0]).match(/e/)) ? parseInt((intSec / arrParts[j][0]).toString(2)) : parseInt(intSec / arrParts[j][0]); strPart += arrParts[j][1]; strPart +=(parseInt(strPart) != 1)?arrParts[j][2]:''; intSec = intSec%arrParts[j][0]; arrParts[j] = strPart; }Geändert von Sven Mintel (24.09.04 um 17:35 Uhr)
-
Jetzt scheint wirklich alles zu funktionieren...
Danke für deine Mühe.
Und wenn ich den Code verstanden habe melde ich mich wieder.
Gruß,
Ordi
Ähnliche Themen
-
Sekunden in Stunden:Minuten:Sekunden ausgeben.
Von reeng im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 06.05.09, 08:34 -
Berechnung von Sekunden in Stunden und Minuten
Von brainsucker im Forum PHPAntworten: 9Letzter Beitrag: 22.07.08, 12:13 -
Aus Timestamps die Tage, Stunden, Minuten und Sekunden auslesen
Von Papenburger im Forum PHPAntworten: 6Letzter Beitrag: 03.01.08, 11:01 -
Funktion um Sekundn in Stunden-Minuten-Sekunden umzuwandeln
Von DarkBart im Forum PHPAntworten: 10Letzter Beitrag: 14.12.03, 17:58 -
Sekunden -> Stunden:Minuten:Sekunden
Von Sputnik im Forum PHPAntworten: 2Letzter Beitrag: 24.10.02, 09:01





Zitieren
Login




