Hlfe bei der Fehlersuche

L33ch

Grünschnabel
Huhu ich hab folgendes Problem:

Ich hab mir nen Counter gebastelt der als Startwert Sec erhält diese aber im TT:HH:MM:SS Format runterzählt. Läuft alles Spitzte nur wenn ich sagen wir mal 1800sec als Startwert angebe bekomme ich nen negativen wert ausgegeben der heruntergezählt wird.
Nun steht ich da und finde den Fehler nicht.

Vielleicht kann mir ja jemand von euch helfen

Code:
function Rechnen(Sekunde)
 
{


 
Tage =(Sekunde/86400);
 
Tage = Math.round(Tage);
 
Sekunde = Sekunde -(Tage*86400);
 
Stunde = Sekunde/3600;
 
Stunde = Math.round(Stunde);
 
Sekunde = Sekunde -(Stunde*3600);
 
Minuten =(Sekunde/60);
 
Minuten = Math.round(Minuten); 
 
Sekunde = Sekunde -(Minuten*60);
 
Sekunde = Math.round(Sekunde); 
 
Time(Tage,Stunde,Minuten,Sekunde);
 
}

function Time(Tage,Stunde,Minuten,Sekunde)
 
{


 
dummy =1;
 
if ((Sekunde ==0)&&(Minuten ==0)&&(Stunde ==0)&&(Tage ==0))
 
{ 
 
 
 
}

if (( Sekunde ==0)&&(Minuten ==0)&&(Stunde ==0))
 
{

Tage = Tage -1;
 
Stunde =23;
 
Minuten =59;
 
Sekunde =59;
 
}

if (( Sekunde ==0)&&(Minuten ==0))
 
{

Stunde = Stunde -1;
 
Minuten =59;
 
Sekunde =59;
 
} 
 
if (Sekunde ==0)
 
{

Minuten = Minuten -1;
 
Sekunde =59; 
 
}


 
Sekunde = Sekunde -1; 
 
window.document.getElementById("T").innerHTML = parseFloat(Tage); 
 
window.document.getElementById("S").innerHTML = parseFloat(Stunde);
 
window.document.getElementById("M").innerHTML = parseFloat(Minuten);
 
window.document.getElementById("SK").innerHTML = parseFloat(Sekunde);
 
setTimeout("Time("+Tage+","+Stunde+","+Minuten+","+Sekunde+");",1000);
 
 
 
}


vielen dank im Vorraus L33ch
 
Sieht nach nem Rundungsfehler aus:
Du rechnest die Tage aus, rundest sie und rechnest die gerundetetn Tage wieder in Sekunden um nur um sie dann wieder von den Sekunden abzuziehen. Wenn du jetzt 0.8 Tage hast rundet er auf einen Tag und zieht dann einen ganzen tag von den 0.8 Tagen ab - somit wird der Wert negativ. Versuchs mal mit math.floor statt math.round.

Ganz nebenbei ist dein script auch ziemlich umständlich. Hier wäre was Einfacheres von mir http://www.tutorials.de/tutorials183965.html - musst du nur noch ein wenig anpassen (das date Zeug am Anfang kannst du weglassen, bei sec setzt du deine 18000 ein und bei display modelst du das trennzeichen um)
 
Zuletzt bearbeitet:
huhu vielen dank für die hilfe klappt nun super. Mal schaun vll bau ich den counter noch mal um, um ihn auch mehrmals auf einer seite benutzten zu können.

Aber fürs erste hat mich deine Hilfe weitergebracht. Danke !
 
Zurück