Conversion d'un montant en format alphabétique

Contenu du snippet

<?php
    // retourne sous format alphabétique un chiffre de 1 à 100 (la correspondance du chiffre 1 n'est pas affichée)
    function unite($u){
  $str="";
  if ($u==1)$str="";if ($u==2)$str="deux";if ($u==3)$str="trois";if ($u==4)$str="quatre";if ($u==5)$str="cinq";
  if ($u==6)$str="six";if ($u==7)$str="sept";if ($u==8)$str="huit";if ($u==9)$str="neuf";if ($u==10)$str="dix";if ($u==11)$str="onze";
  if ($u==12)$str="douze";if ($u==13)$str="treize";if ($u==14)$str="quatorze";if ($u==15)$str="quinze";if ($u==16)$str="seize";if ($u==17)$str="dix-sept";
  if ($u==18)$str="dix-huit";if ($u==19)$str="dix-neuf";
  if ($u>=20 && $u<30){$str="vingt";if ($u-20==1) $str="vingt-et-un";elseif($u!=20) $str="vingt-".unite($u-20);}
  if ($u>=30 && $u<40){$str="trente";if ($u-30==1) $str="trente-et-un";elseif($u!=30) $str="trente-".unite($u-30);}
  if ($u>=40 && $u<50){$str="quarante";if ($u-40==1) $str="quarante-et-un";elseif($u!=40) $str="quarante-".unite($u-40);}
  if ($u>=50 && $u<60){$str="cinquante";if ($u-50==1) $str="cinquante-et-un";elseif($u!=50) $str="cinquante-".unite($u-50);}
  if ($u>=60 && $u<70){$str="soixante";if ($u-60==1) $str="soixante-et-un";elseif($u!=60) $str="soixante-".unite($u-60);}
  if ($u>=70 && $u<80){$str="soixante-dix";if ($u-70==1) $str="soixante-onze";elseif($u!=70) $str="soixante-".unite($u-70+10);}
  if ($u>=80 && $u<90){$str="quatre-vingt";if ($u-80==1) $str="quatre-vingt-et-un";elseif($u!=80) $str="quatre-vingt-".unite($u-80);}
  if ($u>=90 && $u<100){$str="quatre-vingt-dix";if ($u-90==1) $str="quatre-vingt-onze";elseif($u!=90) $str="quatre-vingt-".unite($u-90+10);}
  if ($u==100)$str="cent";
  return $str;
 }
    // retourne sous format alphabétique un chiffre de 0 à 999 999 999
    function montant_en_chiffre($val){
   $million = 0;
   $millier = 0;
   $centaine = 0;
   $dizaine = 0;
   $str = "";
   if ($val==1) $str = "un";
   if ($val==0) $str = "zéro";
   if ($val>=1000000){
    $nb_million = (int)($val/1000000);
    if ($nb_million!=0) $str .= montant_en_chiffre($nb_million)." million";
    $str.=" ".montant_en_chiffre($val-($nb_million*1000000));
    $val=0;
   }
   if ($val>=1000){
    $millier = (int)($val/1000);
    $centaine = (int)(($val - ($millier*1000))/100);
    $dizaine = $val-(($millier*1000)+($centaine*100));
   }
   if ($val<1000 && $val>=100){
    $centaine = (int)($val/100);
    $dizaine = (int)($val - ($centaine*100));
   }
   if ($val<1000 && $val<100){
    $dizaine = $val;
   }
   if ($millier!=0){
    if ($millier<=100){
     $str .=unite($millier)." mille ";
    }
    else{
     $cent= (int)($millier/100);
     $dix=$millier-$cent*100;
     $str .= unite($cent)." cent ".unite($dix)." mille ";
    } 
   }
   if ($centaine!=0){
     $str.=unite($centaine)." cent";
   }
   if ($dizaine!=0){
     $str.=" ".unite($dizaine);
     if ($dizaine==1) $str.=" un";
   }
   return $str;
 }
 
 // Test des fonctions
 echo montant_en_chiffre(32750);
 
?>

A voir également