»
EnglishFrenchVietnamese

Print - Perpetual Calender script - JavaScriptBank.com

Full version: jsB@nk » Time » Calendar » Perpetual Calender script
URL: https://www.javascriptbank.com/perpetual-calender-script.html

Perpetual Calender script © JavaScriptBank.comThe advance calender for your webpages.

Full version: jsB@nk » Time » Calendar » Perpetual Calender script
URL: https://www.javascriptbank.com/perpetual-calender-script.html



JavaScript
<script language="javascript"><!--// MODIFICATIONS MADE BY BRIAN OF SCRIPTASYLUM.COM NOTED// BY "BG MODIFY" IN COMMENTS:// - Now works in Netscape 4, Netscape 6, and IE 4.// - Converted buttons, words, etc to English.// SOME DOCUMENTATION IS IN FRENCH (I THINK) SO ANY SUPPORT// SHOULD BE OBTAINED FROM THE AUTHOR AT THE ADDRESS BELOW/******************************************************** CALENDRIER GREGORIEN PERPETUEL v1.0                  ** par SKAMP (skamp@befrance.com) (09/09/2000)          ********************************************************** Ce script permet de choisir un mois et une annee en  ** particulier, afin d'afficher dynamiquement le        ** calendrier correspondant. Par defaut c'est celui du  ** mois courant qui s'affiche. Note : la 1ere semaine   ** de l'annee commence le 1er lundi.                    **                                                      ** Le code suivant s'inspire de celui de Jean-Michel    ** Berthier (berth@cybercable.fr,                       ** perso.cybercable.fr/berth/jstips/calendrier.htm).    **                                                      ** MODIFICATIONS NECESSAIRES POUR PORTAGE VERS D'AUTRES ** NAVIGATEURS : N'A ETE TESTE QUE SOUS MICROSOFT       ** INTERNET EXPLORER 5.00.2614.3500                     ********************************************************/// BROWSER SNIFFER. BEGIN BG MODIFYns4 = (navigator.appName.indexOf("Netscape")>=0 && document.layers)? true : false;ie4 = (document.all && !document.getElementById)? true : false;ie5 = (document.all && document.getElementById)? true : false;ns6 = (document.getElementById && navigator.appName.indexOf("Netscape")>=0 )? true: false;w3c = (document.getElementById)? true : false;// END BG MODIFYvar HTMLCode = "";var DaysList = new Array("","Mon","Tue","Wed","Thu","Fri","Sat","Sun");var MonthsList = new Array("Mois_Vide","January","Febuary","March","April","May","June","July","August","September","October","November","December");var MonthLength = new Array("Mois_longueur_vide",31,29,31,30,31,30,31,31,30,31,30,31);var QueryDate = 0;      // Jour demande (date)var QueryMonth = 0;     // Mois demandevar QueryYear = 0;      // Annee demandeevar QueryDay = 0;       // Jour de la semaine du jour demande, inconnuvar FirstDay = 0;       // Jour de la semaine du 1er jour du moisvar WeekRef = 0;        // Numerotation des semainesvar WeekOne = 0;        // Numerotation des semainesvar Today = new Date();var TodaysYear = Today.getYear();var TodaysMonth = Today.getMonth() + 1;var TodaysDate = Today.getDate();var TodaysDay = Today.getDay() + 1;    if (TodaysYear < 2000) { TodaysYear += 1900; }// On commence par verifier les donnees fournies par l'utilisateurfunction CheckData(){QueryDate = document.Cal.Date.selectedIndex + 1;QueryMonth = document.Cal.Month.selectedIndex + 1;QueryYear = (document.Cal.Century.selectedIndex + 15) * 100 + document.Cal.Year.selectedIndex;MonthLength[2] = CheckLeap(QueryYear);// on teste si la date choisie est anterieure au lundi 20 decembre 1582if ((QueryYear * 10000 + QueryMonth * 100 + QueryDate) < 15821220)    {    alert("You have chosen a date before Dec 20th 1582.\n\nPlease make another selection.");    document.Cal.reset();    CheckData();    }else if (MonthLength[QueryMonth] < QueryDate)       // on verifie si la date est coherente    {    alert("Il n'y a pas " + QueryDate + " jours en " + MonthsList[QueryMonth] + " " + QueryYear + " mais " + MonthLength[QueryMonth] + ". \nVeuillez choisir une autre date.");    document.Cal.reset();    CheckData();    }else { DisplaySchedule(); }}// Teste une annee pour determiner si elle est bissextile ou pasfunction CheckLeap(yy){if ((yy % 100 != 0 && yy % 4 == 0) || (yy % 400 == 0)) { return 29; }else { return 28; }}// Renvoie le numero de la semaine correspondant a la date requisefunction DefWeekNum(dd){numd = 0;numw = 0;for (n=1; n<QueryMonth; n++)    {    numd += MonthLength[n];    }numd = numd + dd - (9 - DefDateDay(QueryYear,1,1));numw = Math.floor(numd / 7) + 1;if (DefDateDay(QueryYear,1,1) == 1) { numw++; }return numw;}// Renvoie le numero du jour de la semaine correspondant a la date requisefunction DefDateDay(yy,mm,dd){return Math.floor((Date2Days(yy,mm,dd)-2) % 7) + 1;}// Transforme la date en nb de jours theoriquesfunction Date2Days(yy,mm,dd){if (mm > 2)    {    var bis = Math.floor(yy/4) - Math.floor(yy/100) + Math.floor(yy/400);    var zy = Math.floor(yy * 365 + bis);    var zm = (mm-1) * 31 - Math.floor(mm * 0.4 + 2.3);    return (zy + zm + dd);    }else    {    var bis = Math.floor((yy-1)/4) - Math.floor((yy-1)/100) + Math.floor((yy-1)/400);    var zy = Math.floor(yy * 365 + bis);    return (zy + (mm-1) * 31 + dd);    }}// ELEMENT FINDER. BEGIN BG MODIFYfunction findid(name,doc){var i,layer;for(i=0;i<doc.layers.length;i++){layer=doc.layers[i];if(layer.name==name)return layer;if(layer.document.layers.length>0)if((layer=findid(name,layer.document))!=null)return layer;}return null;}// END BG MODIFY// Produit le code HTML qui formera le calendrierfunction DisplaySchedule(){HTMLCode = "<table cellspacing=0 cellpadding=3 border=3 bordercolor=#404056>";QueryDay = DefDateDay(QueryYear,QueryMonth,QueryDate);WeekRef = DefWeekNum(QueryDate);WeekOne = DefWeekNum(1);HTMLCode += "<tr align=center><td colspan=8 class=TITRE><b>" + MonthsList[QueryMonth] + " " + QueryYear + "</b></td></tr><tr align=center>";for (s=1; s<8; s++)    {    if (QueryDay == s) { HTMLCode += "<td width=28><b><font color=#ff6600>" + DaysList[s] + "</font></b></td>"; }    else { HTMLCode += "<td width=28><b>" + DaysList[s] + "</b></td>"; }    }HTMLCode += "<td><b><font color=#888888>Week</font></b></td></tr>";a = 0;for (i=(1-DefDateDay(QueryYear,QueryMonth,1)); i<MonthLength[QueryMonth]; i++)    {    HTMLCode += "<tr align=center>";    for (j=1; j<8; j++)        {        if ((i+j) <= 0) { HTMLCode += "<td>&nbsp;</td>"; }        else if ((i+j) == QueryDate) { HTMLCode += "<td><b><font color=#ff6600>" + (i+j) + "</font></b></td>"; }        else if ((i+j) > MonthLength[QueryMonth]) { HTMLCode += "<td>&nbsp;</td>"; }        else { HTMLCode += "<td>" + (i+j) + "</td>"; }        }    if ((WeekOne+a) == WeekRef) { HTMLCode += "<td><b><font color=#00aa00>" + WeekRef + "</font></b></td>"; }    else { HTMLCode += "<td><font color=#888888>" + (WeekOne+a) + "</font></td>"; }    HTMLCode += "</tr>";    a++;    i = i + 6;    }// ALLOWS CROSS-BROWSER WRITING IN DOCUMENT. BEGIN BG MODIFYif(ie4)document.all['Calendrier'].innerHTML = HTMLCode + "</table>";if(w3c)document.getElementById('Calendrier').innerHTML= HTMLCode + "</table>";if(ns4){var tns4=findid('Calendrier',document);tns4.document.open();tns4.document.write('<center>'+HTMLCode+'</table></center>');tns4.document.close();}// END BG MODIFY}function Back(){document.Cal.Month.selectedIndex = document.Cal.Month.selectedIndex - 1;if (document.Cal.Month.selectedIndex == -1) { document.Cal.Month.selectedIndex = 11; }}function Next(){document.Cal.Month.selectedIndex = document.Cal.Month.selectedIndex + 1;if (document.Cal.Month.selectedIndex == -1) { document.Cal.Month.selectedIndex = 0; }}//EVENT HANDLERSwindow.onload=CheckData;if(ns4)window.onresize=function(){setTimeout('history.go(0)',400);}//--></script><!--    This script downloaded from www.JavaScriptBank.com    Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->


HTML
<form name="Cal"><script language="JavaScript1.2" type="text/javascript">    <!--    // AFFICHE LES 4 MENUS DEROULANTS PERMETTANT DE    // SELECTIONNER LE JOUR, LE MOIS ET L'ANNEE    //*************************************************    DateText = "<select name=\"Date\">"    for (d=1; d<32; d++)        {        DateText += "<option";        if (d == TodaysDate) { DateText += " SELECTED"; }        DateText += ">";        if (d < 10) { DateText += "0"; }        DateText += d + "</option>";        }    DateText += "</select>";    //*************************************************    MonthText = "<select name=\"Month\">"    for (m=1; m<13; m++)        {        MonthText += "<option";        if (m == TodaysMonth) { MonthText += " SELECTED"; }        MonthText += ">";        MonthText += MonthsList[m] + "</option>";        }    MonthText += "</select>";    //*************************************************    CenturyText = "<select name=\"Century\">"    for (c=15; c<25; c++)        {        CenturyText += "<option";        if (c == Math.floor(TodaysYear / 100)) { CenturyText += " SELECTED"; }        CenturyText += ">" + c + "</option>";        }    CenturyText += "</select>";    //*************************************************    YearText = "<select name=\"Year\">";    for (y=0; y<100; y++)        {        YearText += "<option";        if (y == (TodaysYear - Math.floor(TodaysYear / 100) * 100)) { YearText += " SELECTED"; }        YearText += ">";        if (y < 10) { YearText += "0"; }        YearText += y + "</option>";        }    YearText += "</select>";    //*************************************************    document.write(MonthText+' '+DateText+', '+CenturyText+' '+YearText);    //--></script><input type="button" value=" OK " style="font-weight: bold" onClick="CheckData()"><br><br><input type="button" value="<< Month" style="font-weight: bold" onClick="Back(); CheckData()"><input type="button" value=" Return to today's date... " style="font-weight: bold" onClick="document.Cal.reset(); setTimeout('CheckData()',100)"><input type="button" value="Month >>" style="font-weight: bold" onClick="Next();CheckData()"><br><br><br><script language="javascript1.2">if(ns4)document.write('<layer name="Calendrier"></layer><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>')else document.write('<div id="Calendrier"></div>');</script></center></form><!--    This script downloaded from www.JavaScriptBank.com    Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->