diff --git a/library/commons/chiffres.php b/library/commons/chiffres.php
new file mode 100755
index 00000000..54ca0e09
--- /dev/null
+++ b/library/commons/chiffres.php
@@ -0,0 +1,39 @@
+
+
+class WChiffes {
+
+ private static $tabChiffresEnLEttres = array( 0=>'zéro',
+ 1=>'un',
+ 2=>'deux',
+ 3=>'trois',
+ 4=>'quatre',
+ 5=>'cinq',
+ 6=>'six',
+ 7=>'sept',
+ 8=>'huit',
+ 9=>'neuf',
+ 10=>'dix',
+ 11=>'onze',
+ 12=>'douze',
+ 13=>'treize',
+ 14=>'quatorze',
+ 15=>'quinze',
+ 16=>'seize',
+ 17=>'dix sept',
+ 18=>'dix huit',
+ 19=>'dix neuf',
+ 20=>'vingt',
+ 30=>'trente',
+ 40=>'quarante',
+ 50=>'cinquante',
+ 60=>'soixante',
+ 70=>'soixante dix',
+ 80=>'quatre vingt',
+ 90=>'quatre vingt dix');
+
+ public function ChiffresEnLettres($chiffre) {
+ return array_search($chiffre, self::$tabChiffresEnLEttres);
+ }
+}
+
+ ?>
\ No newline at end of file
diff --git a/library/commons/dates.php b/library/commons/dates.php
new file mode 100755
index 00000000..fb6ce0c2
--- /dev/null
+++ b/library/commons/dates.php
@@ -0,0 +1,144 @@
+
+
+include_once('chiffres.php');
+
+
+/**
+ * Classe de gestion des méthodes relatives à la date et à l'heure
+ *
+ *
détail de la classe
+ *
+ * @name nom de la classe
+ * @author Nom de l'auteur
+ * @link
+ * @copyright Prénom Nom Année
+ * @version 1.0.0
+ * @package Nom du package
+ */
+
+ class WDate {
+
+ private static $tabMoisEnLettres = array( 1=>'Janvier',
+ 2=>'Février',
+ 3=>'Mars',
+ 4=>'Avril',
+ 5=>'Mai',
+ 6=>'Juin',
+ 7=>'Juillet',
+ 8=>'Août',
+ 9=>'Septembre',
+ 10=>'Octobre',
+ 11=>'Novembre',
+ 12=>'Décembre');
+
+ /** Retourne le numéro du mois donné au format texte (janvier, mars, etc...)
+ * @param string Mois en toute lettres (janvier, mars, etc...)
+ * @return string Mois en Chiffe (1, 3, 12) / false en cas d'erreur
+ */
+ public function getNumMois($moisEnLettres) {
+ foreach (self::$tabMoisEnLettres as $num=>$mois)
+ $tabMoisSansAccents[$num]=strtr($mois, 'ééû','eeu');
+ return array_search(ucfirst(strtolower(strtr($moisEnLettres, 'ééû','eeu'))), $tabMoisSansAccents);
+ }
+
+ /** Retourne le libellé nu numéro du mois passé en paramètre
+ * @param int $moisEnChiffre
+ * @return string Libellé du mois / false si le mois passé en paramètre est invalide
+ */
+ public function getLibelleMois($moisEnChiffre) {
+ if ($moisEnChiffre>0 && $moisEnChiffre<13)
+ return self::$tabMoisEnLettres[$moisEnChiffre];
+
+ return false;
+ }
+
+ /**
+ * Conversion de formats de dates selon les formats de dates définits en php
+ * @param string Format de la date d'entrée
+ * @param string Format de la date de sortie
+ * @param string Date d'entrée
+ * @return string Date formatée
+ */
+ public function dateT($formatIN, $formatOUT, $date)
+ {
+ $M='';
+ switch ($formatIN)
+ {
+ case 'd M Y':
+ $tmp=explode(' ', $date); $d=str_replace('1er', '1', $tmp[0]);
+ $m=getNumMois($tmp[1]); $Y=$tmp[2];
+ break;
+ case 'dMY':
+ $Y = substr($date,-4);
+ if (substr($date,0,3)=='1er') { $d=1; $posM=3; }
+ elseif (is_numeric(substr($date,1,1))) { $d=substr($date,0,2); $posM=2; }
+ else { $d=substr($date,0,1); $posM=1; }
+ $M = substr($date, $posM, strlen($date)-4-$posM);
+ $m = self::getNumMois($M);
+ break;
+ case 'Ymd':
+ $d = substr($date,6,2);
+ $m = substr($date,4,2);
+ $Y = substr($date,0,4);
+ break;
+ case 'Y-m-d':
+ $d = substr($date,8,2);
+ $m = substr($date,5,2);
+ $Y = substr($date,0,4);
+ break;
+ case 'd/m/Y':
+ $d = substr($date,0,2);
+ $m = substr($date,3,2);
+ $Y = substr($date,6,4);
+ break;
+ default: return $date;
+ }
+
+ if ($m*1>0 && $m*1<10) $m='0'.($m*1);
+ if ($d*1>0 && $d*1<10) $d='0'.($d*1);
+
+ switch ($formatOUT)
+ {
+ case 'd/m/Y': return $d.'/'.$m.'/'.$Y; break;
+ case 'm/Y': return $m.'/'.$Y; break;
+ //case 'M Y': return $this->tabMoisEnLettres[$m].' '.$Y; break;
+ case 'Y': return $Y; break;
+ case 'm': return $m; break;
+ case 'd': return $d; break;
+ case 'Ym': return $Y.$m; break;
+ case 'Ymd': return $Y.$m.$d; break;
+ case 'Y-m-d': return $Y.'-'.$m.'-'.$d; break;
+ case 'Y/m/d': return $Y.'/'.$m.'/'.$d; break;
+ default: return $date;
+ }
+ }
+
+ /** Calcul de la date après application de la période textuelle (deux ans, six mois, quinze jours, etc...)
+ * @todo Fonction ne fonctionnant qu'avec un chiffre en un seul mot du genre dix mais pas quatre vingt dix !!!
+ * @param date $dateIN au format Ymd
+ * @param string $period (ex : cinq mois, six ans, un jour)
+ * @return date
+ */
+ function period2Days($dateIN, $period) {
+ $dateV=self::dateT('Ymd', 'Ymd', $dateIN);
+ if ($dateV<>$dateIN) return NULL;
+ $d=substr($dateIN,6,2);
+ $m=substr($dateIN,4,2);
+ $Y=substr($dateIN,0,4);
+ $period=trim(strtr($period, "-.,", ' '));
+ if ($period=='') return NULL;
+ $tabP=explode(' ', $period);
+ $chiffre=WChiffes::ChiffresEnLettres($tabP[0]);
+ switch (end($tabP)) {
+ case 'mois': $dateOUT=date('Ymd', mktime(0, 0, 0, $m+$chiffre, $d, $Y)); break;
+ case 'an':
+ case 'ans': $dateOUT=date('Ymd', mktime(0, 0, 0, $m, $d, $Y+$chiffre)); break;
+ case 'jour':
+ case 'jours': $dateOUT=date('Ymd', mktime(0, 0, 0, $m, $d+$chiffre, $Y)); break;
+ default: $dateOUT=NULL;
+ }
+ return $dateOUT;
+ }
+}
+
+?>
\ No newline at end of file