/* gestion de date - Fev 1999 by David Ughetto as Dugh */ var date_chargee = 0;; typeof nom_mois = tab S;; typeof duree_mois = tab I;; typeof nom_jour = tab S;; fun init_date()= set nom_mois = mktab 12 "Jan"; set nom_mois.0="Jan"; set nom_mois.1="Feb"; set nom_mois.2="Mar"; set nom_mois.3="Apr"; set nom_mois.4="May"; set nom_mois.5="Jun"; set nom_mois.6="Jul"; set nom_mois.7="Aug"; set nom_mois.8="Sep"; set nom_mois.9="Oct"; set nom_mois.10="Nov"; set nom_mois.11="Dec"; set nom_jour = mktab 7 "Sun"; set nom_jour.0="Sun"; set nom_jour.1="Mon"; set nom_jour.2="Tue"; set nom_jour.3="Wed"; set nom_jour.4="Thu"; set nom_jour.5="Fri"; set nom_jour.6="Sat"; set duree_mois = mktab 12 0; set duree_mois.0=31; set duree_mois.1=28; set duree_mois.2=31; set duree_mois.3=30; set duree_mois.4=31; set duree_mois.5=30; set duree_mois.6=31; set duree_mois.7=31; set duree_mois.8=30; set duree_mois.9=31; set duree_mois.10=30; set duree_mois.11=31;; fun numero(n_mois,mois,nb_oc)= let -1->n in {let 0->i in while idatef in strcat strcat strcat strcat nth_list datef 4 /* annee */ format_chaine itoa (numero nom_mois nth_list datef 1 12)+1 format_chaine nth_list datef 2 /* jour */ substr nth_list datef 3 0 2 substr nth_list datef 3 3 2;; fun AddTime(date, nb_min, nb_h, nb_j)= if date_chargee == 0 then (init_date;set date_chargee=1) else nil; let hd strextr date->datef in let (atoi substr nth_list datef 3 0 2)+nb_h->nheure in let (atoi substr nth_list datef 3 3 2)+nb_min->nmin in let mod (numero nom_jour nth_list datef 0 7)+nb_j 7->jour in let (atoi nth_list datef 2)+nb_j->njour in let numero nom_mois nth_list datef 1 12->nmois in let atoi nth_list datef 4->annee in { set nheure = nheure + nmin/60; set nmin = mod nmin 60; set njour = njour + nheure/24; set jour = mod jour+nheure/24 7; set nheure = mod nheure 24; set duree_mois.1 = if bissextile annee then 29 else 28; while njour > duree_mois.nmois do { set njour=njour-duree_mois.nmois; set nmois=nmois+1; if nmois==12 /* 12 est le mois apres decembre...*/ then (set nmois=0; /* janvier */ set annee=annee+1; set duree_mois.1 = if bissextile annee then 29 else 28) else nil; }; strcat strcat strcat strcat aj_esp nom_jour.jour aj_esp nom_mois.nmois aj_esp format_chaine itoa njour aj_esp strcat strcat strcat format_chaine itoa nheure ":" format_chaine itoa nmin substr nth_list datef 3 5 3 itoa annee };;