• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Counter bis zum nächsten 3. Samstag im Monat

Ach so, jetzt verstehe ich dich erst: Du willst die Zahlen zweistellig haben mit einer 0 davor.
Code:
    if (rap2 < 10) {rap2 = "0" + rap2;}
    // usw. für die folgenden Variablen
    var Zeit = rap1 + ' Tage, ' + rap2 + ' Stunden, ' + rap3 + ' Minuten, ' + rap4 + ' Sekunden';
 
Werbung:
hmmm muss das hier nochmal eröffnen...
der Ticker hat sich heute am 1. Samstag spontan auf 0Tage, 00 Stunden, 00 Minuten und 00 Sekunden gesetzt von gestern noch 14 Tage und...(was ja stimmte)...

hier nochmal der komplette Code nun:
Code:
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Java_Timer_test</title>
<script language="JavaScript" type="text/javascript">

// Dritten Samstag im Monat ermitteln
function get3Samstag (jahr, monat)
{
  erster = new Date(jahr, monat, 1);
  var wTag = erster.getDay();
  datum1Freitag = 6 - wTag + 1;
  return datum1Freitag + 14;
}

function ZeitAnzeigen ()
{
    // Jahr und Monat von heute ermitteln
    jetzt = new Date();
    jahr = jetzt.getFullYear();
    monat = jetzt.getMonth();

    // 3. Samstag fuer den aktuellen Monat ermitteln
    samstagAktuell = get3Samstag (jahr, monat);
    dateSamstagAktuell = new Date(jahr, monat, samstagAktuell);

    // Jahr und Monat des naechsten Monats ermitteln
    if (monat == 11)
    {
      monatNaechster = 0;
      jahrNaechster = jahr++;
    }
    else
    {
      monatNaechster = monat + 1;
      jahrNaechster = jahr;
    }
    samstagNaechster = get3Samstag (jahrNaechster, monatNaechster);
    dateSamstagNaechster = new Date(jahrNaechster, monatNaechster, samstagNaechster);
    dateHeute = new Date (jahr, monat, jetzt.getDate());

    // Pruefen, ob der 3. Samstag in diesem Monat schon vorbei ist
    if (dateHeute.getTime() > dateSamstagAktuell.getTime())
    {
      // Naechster 3. Samstag ist der im naechsten Monat
      then =  dateSamstagNaechster;
    }
    else
    {
      // Naechster 3. Samstag ist der in diesem Monat
      then = dateSamstagAktuell;
    }

    var diff = then.getTime() - jetzt.getTime();
    var rap1 = rap2 = rap3 = rap4 = 0;

    if (diff >= 0)
    {
        var gap4 = Math.floor(diff / (1000));
        var gap3 = Math.floor(gap4 / (60));
        var gap2 = Math.floor(gap3 / (60));
        var gap1 = Math.floor(gap2 / (24));

        var rap1 = Math.floor(gap1);
        var rap2 = Math.floor(gap2 - (gap1 * 24));
        var rap3 = Math.floor(gap3 - (gap2 * 60));
        var rap4 = Math.floor(gap4 - (gap3 * 60));
    }

    if (rap2 < 10) {rap2 = "0" + rap2;}
    if (rap3 < 10) {rap3 = "0" + rap3;}
    if (rap4 < 10) {rap4 = "0" + rap4;}
    var Zeit = rap1 + ' Tage, ' + rap2 + ' Stunden, ' + rap3 + ' Minuten und ' + rap4 + ' Sekunden';

    document.getElementById('timer').firstChild.nodeValue = Zeit;

    if (diff >= 0)
        setTimeout('ZeitAnzeigen();', 1000);
}

window.onload = ZeitAnzeigen;
//-->
</script>

</head>

<body>
<span id="timer">&nbsp;</span>
</body>

</html>

nun ist die Frage, warum ist nu Zeit abgelaufen, wenns gestern noch 14 Tage und... waren?!?!
 
Werbung:
Der Fehler liegt hier:
Code:
    // Jahr und Monat des naechsten Monats ermitteln
    if (monat == 11)
    {
      monatNaechster = 0;
      [B]jahrNaechster = jahr++[/B]; // falsch
    }
    else
    {
      monatNaechster = monat + 1;
      jahrNaechster = jahr;
    }
Richtig ist:
Code:
    // Jahr und Monat des naechsten Monats ermitteln
    if (monat == 11)
    {
      monatNaechster = 0;
      [B]jahrNaechster = jahr + 1[/B]; // richtig
    }
    else
    {
      monatNaechster = monat + 1;
      jahrNaechster = jahr;
    }
 
Zurück
Oben