Calcul de date et de durée


present.gif (1424 octets)

Calculer une date ou (et) une durée dans une page HTML peut souvent être utile. Voici un exemple simple: calcul des dates de fin de garantie d'un ensemble multimédia.


exemple.gif (1055 octets)

Durée de validité de nos services

Formulaire à remplir

Date de votre achat:  

 


script.gif (838 octets)

NB: les textes en rouge sont des commentaires à supprimer dans le code html

<script language="JavaScript"> <!-- debut du script

On déclare les variables et les tableaux:

var HerDate la date entrée par l'utilisateur
var dpaJJ la date qui va être calculée, le jour
var dpaMM le mois
var dpaAAAA l'année

function RetourneDate(I)
{ c'est la fonction principale qui va calculer la date en fonction de I (nombre de jours à ajouter à la date entrée)
ecart = I * 86400 * 1000; le calcul se fait en milliémes de seconde !!
dpaDate= HerDate.getTime() + ecart;
dpaDateS=dpaDate/1000;
jour=Math.floor(dpaDateS/86400) -5on raméne au nombre de jours, on enléve 5 (années bisextiles)
annee=Math.floor(jour/365)  puis au nombre d'années
restann=(jour/365) - annee le reste
mois=Math.floor(restann*12) idem pour le mois
restmoi = (restann*12) - mois
jours=Math.floor(restmoi * 30) et les jours
mois=Math.floor(mois) on arondi le mois

attention, si le mois ou le jour est égal à zéro:
if (jours==0) {
jours=1;}
if (mois==0) {
mois=12
annee=annee-1;
}
notre date
dpaJJ=jours

dpaMM=mois
dpaAAAA=annee+1970
return

}
function calculvar(form)
{ on récupére la date entrée dans le formulaire
RJour  =form.regleJour.value
RMois  =form.regleMois.selectedIndex+1

RAnnee =form.regleAnnee.value
HerDate=new Date(RAnnee, RMois, RJour)
HerDate2=new Date(RAnnee, RMois-1, RJour)
afich()
}

function afich(){
Affichage des résultats dans une fenêtre externe (NB: netscape ne peut faire l'affichage dans la même fenêtre contrairement à internet explorer)

correc=open("","correction","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=1,resizable=1,width=500,height=200");
correc.document.write('<body BGCOLOR="#FFFFCC" TOPMARGIN="3" TEXT="#000000" LINK="#0033FF"LINK="#FF0000" ALINK="#006600"><p align="center" >Vos garanties</p>')

correc.document.write('<p>Date achat : '+RJour+'/'+RMois+'/'+RAnnee+'<br>') rappel de la date entrée
correc.document.write('<hr><p align="center"><strong>Les r&eacute;sultats de nos calculs</p>')
SysDate = new Date() on s'enquiert de la date systéme

Calcul de la durée entre la date entrée et la date du jour, script superposable à celui de la fonction RetourneDate
difference= Math.abs(SysDate.getTime() - HerDate2.getTime())
difference=Math.floor(difference / 1000)
nbj = Math.floor(difference / 86400 )
nbs = Math.floor(nbj / 7)
nbsj = nbj - (nbs*7)
v = nbj - 13
nmois = Math.floor(v/30) +1
nba= Math.floor(nbs/52)
cnba=nba*52
nbs2=nbs-cnba
correc.document.write('<p>Cela fait donc :'+nba+' années '+nbs2+' semaines et '+nbsj+' jours  que vous acheté cet ensemble<br><BR>');

RetourneDate(365)
correc.document.write("Votre ordinateur est garanti un an soit jusqu'au : "+dpaJJ+'/'+dpaMM+'/'+dpaAAAA+'<br><br>');
la garantie étant de 1 an, on entre 365 jours comme paramétre pour la fonction
RetourneDate, et on affiche

et ainsi de suite

RetourneDate(1095)
correc.document.write("Votre écran est garanti trois ans soit jusqu'au : "+dpaJJ+'/'+dpaMM+'/'+dpaAAAA+'<br><br>');

RetourneDate(547)
correc.document.write("Votre imprimante est garanti 18 mois soit jusqu'au : "+dpaJJ+'/'+dpaMM+'/'+dpaAAAA+'<br><br>');

RetourneDate(91)
correc.document.write("Hot line gratuite pendant 3 mois soit jusqu'au : "+dpaJJ+'/'+dpaMM+'/'+dpaAAAA+'<br><br>');

 
}

</script>

<p align="center"><font color="#0000FF" size="4"><strong>Formulaire à remplir</strong></font></p>

le formulaire

<form method="post" name="form1">
  <table border="1" width="100%">
    <tr>
      <td width="45%"><font face="Times New Roman" size="3"><strong>Date de votre achat: </strong></font></td>
      <td width="55%"><strong><input type="text" size="2" maxlength="2" name="regleJour"
Le nom de chaque champ importe peu mais DOIT correspondre à ceux entrés dans la fonction Calculvar !!!!! ils sont ici notés en bleu foncé
      language="JavaScript" le jour est incorrect !") return }"> <font size="2">/&nbsp; </font><select
      name="regleMois" size="1">
        <option value="01"> Janvier </option>
        <option value="02"> Février </option>
        <option value="03"> Mars </option>
        <option value="04"> Avril </option>
        <option value="05"> Mai </option>
        <option value="06"> Juin </option>
        <option value="07"> Juillet </option>
        <option value="08"> Aout </option>
        <option value="09"> Septembre </option>
        <option value="10"> Octobre </option>
        <option value="11"> Novembre </option>
        <option value="12"> Décembre </option>
      </select> <input type="text" size="4" name="regleAnnee" value="1999"> &nbsp; </strong></td>
    </tr>
  </table>
  <div align="center"><center><p>&nbsp; <input type="reset" name="B2" value="Effacer"> <input
  type="button" name="B1" value="Valider" onclick="calculvar(form1)"> dés la validation du formulaire, appel du programme
  </p>
  </center></div>
</form>


live.gif (1590 octets)

Si vous utilisez ce script, donnez l'adresse de votre page et elle apparaitra ici

Sur Femiweb


ramses.gif (3062 octets)

Téléchargez le script

ramses2.gif (3094 octets)

Retour