// Het berekenen van de carnavalsdatum adhv Pasen
function Carnaval(pnYear)
{
 if (pnYear < 1000)
    {pnYear += 1900}

 // Uitrekenen van de datum voor Pasen

 with (Math)
    {
     var lnA = pnYear % 19;
     var lnB = pnYear % 4;
     var lnC = pnYear % 7;

     var lnK = floor(pnYear / 100);
     var lnP = floor((8 * lnK + 13) / 25);
     var lnQ = floor(lnK / 4);
     var lnM = (15 + lnK - lnP - lnQ) % 30;
     var lnN = (4 + lnK - lnQ) % 7;

     var lnD = (19 * lnA + lnM) % 30;
     var lnF = floor((lnD + floor(lnA / 11)) / 29 );

     var lnE = (2 * lnB + 4 * lnC + 6 * (lnD - lnF) + lnN) % 7;
     var lnP = 22 + lnD - lnF + lnE;
    }

 if (lnP < 32)
    {var ldEaster = new Date(pnYear,02,lnP,12,0,0)}
 else
    {lnP = lnP - 31;
     var ldEaster = new Date(pnYear,03,lnP,12,0,0)}

 // Uitrekenen van de datum van carnaval welke 49 dagen voor Pasen ligt
 var ldCrnvl = new Date()
 ldCrnvl.setTime(ldEaster.getTime() - (49 * 24 * 60 * 60 * 1000))
 return ldCrnvl
}


// Een datum omzetten in een string met de mogelijkheid er een aantal dagen
// bij op te tellen of af te trekken.
function GetDatum(pdDatum, pnDagen)
{
 var ldDatum = new Date();
 ldDatum.setTime(pdDatum.getTime() + (pnDagen * 24 * 60 * 60 * 1000))

 var lcRetVal = ldDatum.getDate() + "-";
 lcRetVal += (ldDatum.getMonth() + 1) + "-";
 lcRetVal += ldDatum.getFullYear();
 return lcRetVal
}


// Het tonen van de carnavalsdatum adhv een opgegeven jaartal
function GetCrnvl(pnJaar)
{
 if (pnJaar == 0)
    {alert("Er moet een jaartal ingevoerd worden vanaf 1970 !")}
 else
    {
     if (pnJaar < 1970)
        {alert("Er kan alleen een datum bepaald worden vanaf 1970 !")}
     else
        {alert("Het carnavalsfeest begint op (dd-mm-jj):\n\n" + GetDatum(Carnaval(pnJaar), 0))}
    }
}
