<!--

/*tabjour = Array(lundi, mardi,mercredi,jeudi,vendredi,samedi,dimanche);
tabmois = Array(janvier,février,mars,avril,mai,juin,juillet,août,septembre,octobre,novembre,décembre);
*/
function DateCouranteForm()
{
     today = new Date();
     day = today.getDate();
     if (day<10) day="0"+day;
     month = today.getMonth()+1;
     if (month<10) month = "0"+ month;
     return (day+"/"+month+"/"+today.getYear());


}

function Bissextile(year)
{
      if (year % 4 ==0 ) return (0);
      if (year %100 !=0) return (1);
      if (year%400 !=0) return (0);
      return (true);
}
//NbJourMois
function NbJourMois(mois,annee)
{
 var tb = new Array(12);
 tb[0] =31;tb[1] =28; tb[2] =31;tb[3]=30;tb[4] =31;tb[5] =30; tb[6] =31;tb[7] = 31;tb[8] = 30;tb[9] =31;tb[10] = 30; tb[11] = 31;
if (mois==2 && Bissextile(annee)) return 29;
else return tb[mois-1];
}

function CompleteZeroG(str,len)
{
  var nb ;
   var ret ;
  var i;
 nb = len-str.length;
  ret = str;
  for (i = 0;i<nb; i++)
      ret = "0"+ret;

  return (ret);
}
//PremierJourMois
function PremierJourMois(dt)
{
  var s;
   s = dt.substr(0,6)+"01";
  return s;
}
//DernierJourMois
function DernierJourMois(dt)
{

  var year, mon,ret;
  year = dt.substr(0,4);
  mon = dt.substr(4,2);
  repl = CompleteZeroG(NbJourMois(mon,year),2);
  var s;
   s = dt.substr(0,6)+repl;
  return s;
}

//Tab2Date
function Tab2Date(year,month,day,hour,minute,second)
{
         var struni;
      //printf("%d/%d/%d\n",day,month,year);
      if (day==0 || month==0 || year==0)
      {

        return("");
      }
      else
      {
           if (month>12) return("");
          if (day>NbJourMois(month,year)) return("");
          if (hour>23) return("");
          if (minute>59) return("");
          if (second>59) return("");


          struni=CompleteZeroG(year.toString(),4)+CompleteZeroG(month.toString(),2)+CompleteZeroG(day.toString(),2);
          if (hour!=null && minute!=null && second!=null)
          {
             struni=struni+" "+CompleteZeroG(hour.toString(),2)+CompleteZeroG(minute.toString(),2)+CompleteZeroG(second.toString(),2);
          }
     }

      return (struni);
}
//Date2Tab
function Date2Tab(str)
{

   var tab = new Array(6);
   tab[0] = eval(str.substr(0,4));
   tab[1] = eval(str.substr(4,2));
   tab[2] = eval(str.substr(6,2));
   tab[3] = eval(str.substr(9,2));
   tab[4] = eval(str.substr(11,2));
   tab[5] = eval(str.substr(13,2));



  return tab;
}

//JourSemaine
function JourSemaine(str)
{
  var tab = new Array(6);
  tab = Date2Tab(str);
  var m,d,a,s,jd,js;

  m = tab[1];
  d = tab[2];
  a = tab[0];
  s = tab[0].toString;
  s = s.substr(0,2);
  s = eval(s);
  if ( m < 3) {m+=12;a--;}
  jd = 1720996.5 - s + parseInt(s/4)+365.25*a+ (30.6001*(m+1)) +d;
  jd = jd- parseInt(jd/7)*7;
  js = jd%7;
  if (js<7) return (js);
  else return(0);

}
//JourPrec
function JourPrec(dref)
{
  var tab = new Array(6);
   tab=Date2Tab(dref);

   if (tab[2] ==1)
   {  
      if (tab[1] ==1)
      {
         tab[0]--;
         tab[1] = 12;
         tab[2]=31;
      }
      else
      {
          tab[1]--;
          tab[2] = NbJourMois(tab[1],tab[0]);
      }
   }
   else tab[2]--;

return Tab2Date(tab[0],tab[1],tab[2],tab[3],tab[4],tab[5]);

}
<!--
//JourSuiv
function JourSuiv(dref)
{
   var tab = new Array(6);
  
   tab=Date2Tab(dref);


   if (tab[2] ==NbJourMois(tab[1],tab[0]))
   {  
      if (tab[1] ==12)
      {
         tab[0]++;
         tab[1] = 1;
         tab[2]=1;
      }
      else
      {
         tab[1]++;
         tab[2] = 1;
      }
   }
   else tab[2]++;

   return Tab2Date(tab[0],tab[1],tab[2],tab[3],tab[4],tab[5]);
}
//MoisPrec
function MoisPrec(dref)
{
 var tab = new Array(6);
  
   tab=Date2Tab(dref);
   if (tab[1] == 1)
   {  
      tab[1] =12;
      tab[0]--;
   }
   else
   {
         tab[1]--;
         nb = NbJourMois(tab[1],tab[0]);
         if ( tab[2]>nb ) tab[2] = nb;

   }
     return Tab2Date(tab[0],tab[1],tab[2],tab[3],tab[4],tab[5]);

}
//MoisSuiv
function MoisSuiv(dref)
{
 var tab = new Array(6);

   tab=Date2Tab(dref);
   if (tab[1] == 12)
   {  
      tab[1] =1;
      tab[0]++;

   }
   else
   {
         tab[1]++;


   }
   nb = NbJourMois(tab[1],tab[0]);
   if ( tab[2]>nb ) tab[2] = nb;
   return Tab2Date(tab[0],tab[1],tab[2],tab[3],tab[4],tab[5]);
}
//DateAdd

function DateAdd(periode,nb,dref)
{

switch (periode)
{
 case "d" : if (nb>0) {    for (i=0;i<nb;i++) dref=JourSuiv(dref); }
            else {  for (i=0;i>nb;i--) dref=JourPrec(dref); }
            break;
 case "m" : if (nb>0) {    for (i=0;i<nb;i++) dref=MoisSuiv(dref); }
            else {  for (i=0;i>nb;i--) dref=MoisPrec(dref); }
            break;

}

return dref;

}
// -->
