Naviguation dans :  Perl  JavaScript  Détail  - load.cgi?Appel=baseUser
 présentée :  par cas d'appel   par traitements 
Retour à l'accueil
  
     
 Requêtes 

 load – User 

 baseUser 

Requêtes de Ça-déménage.com
Accès particulier
Chargement de la base
 submit | Finer | Errer | Execer | fromClient | toDBase | fromDBase | toClient 
  
 
 Bibliothèque CaD  Bibliothèque de Ça-déménage.com
 
  
  
 Bibliothèque 

 Utilitaires 

 Date 

Bibliothèque standard
Divers utilitaires
Divers utilitaires de gestion des dates
 getDate | setDate | offsetDate | offsetDate2 | longDate 
  


 offsetDate  Décaler une date d'un nombre de jours spécifié
Par exemple :
offsetDate("18/07/2005",5) retourne "23/07/2005".
Syntaxe offsetDate(x,n)
Paramètres 
nom  type  Description 
 IN Date initiale au format : JJ/MM/AAAA
 IN Nombre de jours de décalage (positif ou négatif)
retourne  OUT Date décalée au format : JJ/MM/AAAA
Fonctions util. Néant


 offsetDate2  Obtenir le premier jour de la quinzaine qui précède ou qui suit une date donnée
Par exemple :
offsetDate2("18/07/2005",-1) retourne "16/07/2005"
offsetDate2("18/07/2005",1) retourne "01/08/2005".
Syntaxe offsetDate2(x,sens)
Paramètres 
nom  type  Description 
 IN Date initiale au format : JJ/MM/AAAA
sens  IN Sens (nombre positif ou négatif)
retourne  OUT Date décalée au format : JJ/MM/AAAA
Fonctions util. Néant


Code Perl 

sub offsetDate {local($x,$n) = @_; 
 local($k,$a,$m,$j); 
 if ($x!~/(\d\d)\/(\d\d)\/(\d\d\d\d)/) {return ''}
 $j = ('1'.$1)+0-100; $m = ('1'.$2)+0-100; $a = ($3)+0;
 $j += $n;
if ($n>=0) {
 while($j>($k=&mois($a,$m,1))) {$a = (($m==12)?$a+1:$a); $m = ($m%12)+1; $j -= $k}
} else {
 while($j<1) {$a = (($m==1)?$a-1:$a); $m = (($m+10)%12)+1; $j += &mois($a,$m,1)}
}
 return (($j<10)?'0':'').$j.''.'/'.(($m<10)?'0':'').$m.''.'/'.$a.'';
}

sub offsetDate2 {local($x,$sens) = @_; 
 local($k,$a,$m,$j); 
 if ($x!~/(\d\d)\/(\d\d)\/(\d\d\d\d)/) {return ''}
 $j = ('1'.$1)+0-100; $m = ('1'.$2)+0-100; $a = ($3)+0;
if ($sens>=0) {
 if ($j<16) {return &offsetDate($x,16-$j)};
 return &offsetDate($x,&mois($a,$m,1)+1-$j);
} else {
 if ($j>=16) {return &offsetDate($x,1-$j)};
 return &offsetDate($x,16-&mois((($m==1)?$a-1:$a),(($m+10)%12)+1,1)-$j);
}
}

sub mois {local($a,$m,$j) = @_; 
 local @T = (31,28,31,30,31,30,31,31,30,31,30,31); 
 if ($m==2) {return (($a%4)==0)?29:28} else {return $T[$m-1]}
 return 0;
}
Code JavaScript 

function offsetDate(x,n) { 
 var k,a,m,j; 
 if (!x.match(/(\d\d)\/(\d\d)\/(\d\d\d\d)/)) {return ''}
 j = parseInt('1'+RegExp.$1)-100; m = parseInt('1'+RegExp.$2)-100; a = parseInt(RegExp.$3);
 j += n;
if (n>=0) {
 while(j>(k=mois(a,m,1))) {a = ((m==12)?a+1:a); m = (m%12)+1; j -= k}
} else {
 while(j<1) {a = ((m==1)?a-1:a); m = ((m+10)%12)+1; j += mois(a,m,1)}
}
 return ((j<10)?'0':'')+j.toString()+'/'+((m<10)?'0':'')+m.toString()+'/'+a.toString();
}

function offsetDate2(x,sens) { 
 var k,a,m,j; 
 if (!x.match(/(\d\d)\/(\d\d)\/(\d\d\d\d)/)) {return ''}
 j = parseInt('1'+RegExp.$1)-100; m = parseInt('1'+RegExp.$2)-100; a = parseInt(RegExp.$3);
if (sens>=0) {
 if (j<16) {return offsetDate(x,16-j)};
 return offsetDate(x,mois(a,m,1)+1-j);
} else {
 if (j>=16) {return offsetDate(x,1-j)};
 return offsetDate(x,16-mois(((m==1)?a-1:a),((m+10)%12)+1,1)-j);
}
}

function mois(a,m,j) { 
 var T = [31,28,31,30,31,30,31,31,30,31,30,31]; 
 if (m==2) {return ((a%4)==0)?29:28} else {return T[m-1]}
 return 0;
}