begin process at 2013 05 24 12:03:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > CONVERTISSEUR MONTANT --> TEXT

CONVERTISSEUR MONTANT --> TEXT


 Information sur la source

 Description

Ce script à besoin de 3 infos :
- 1 montant en format xxxxxxxx.xx
- 1 monnaie en format EUR - GBP - CAD - USD
- 1 langue en format fr - en
Il donne une chaine de caractère avec le montant en lettre

Source

  • <?php
  • // fonction pour transformer les montants chiffre => montant en lettre
  • function convertir($Montant,$Monnaie,$Langue){
  • // Valeur en anglais et en français
  • if ($Langue == "en"){
  • $grade = array(0 => "Zero ",1=>" Billions ",2=>" Millions ",3=>" Thousands ");
  • }else{
  • $grade = array(0 => "Zero ",1=>" Milliards ",2=>" Millions ",3=>" Mille ");
  • }
  • // les différente Monnaie
  • if ($Monnaie == "USD"){
  • $Mon = array(0=>" Dollar",1=>" Dollars",2=>" Cent",3=>" Cents");
  • }elseif ($Monnaie == "CAD"){
  • $Mon = array(0=>" Dollar",1=>" Dollars",2=>" Cent",3=>" Cents");
  • }elseif ($Monnaie == "GBP"){
  • $Mon = array(0=>" Pound",1=>" Pounds",2=>" Penny",3=>" Pence");
  • }else{
  • $Mon = array(0=>" Euro",1=>" Euros",2=>" Cent",3=>" Cents");
  • }
  • // Mise au format pour les chéque et le SWI
  • $Montant = number_format($Montant,2,".","");
  • // Si montant = Zero
  • if ($Montant == 0){
  • $result = $grade[0].$Mon[0];
  • }else{
  • $result = "";
  • // Calcule des Unités
  • $montant = intval($Montant);
  • // Calcule des centimes
  • $centime = round(($Montant * 100) - ($montant * 100),0);
  • // Traitement pour les Milliards
  • $nombre = $montant / 1000000000;
  • $nombre = intval($nombre);
  • if ($nombre > 0){
  • if ($nombre > 1){
  • $result = $result.cenvtir($nombre,$Langue).$grade[1];
  • }else{
  • if ($Langue == "en"){
  • $result = $result." One ".$grade[1];
  • $result = substr($result,0,13)." ";
  • }else{
  • $result = $result." Un ".$grade[1];
  • $result = substr($result,0,13)." ";
  • }
  • }
  • $montant = $montant - ($nombre * 1000000000);
  • }
  • // Traitement pour les Millions
  • $nombre = $montant / 1000000;
  • $nombre = intval($nombre);
  • if ($nombre > 0){
  • if ($nombre > 1){
  • $result = $result.cenvtir($nombre,$Langue).$grade[2];
  • }else{
  • if ($Langue == "en"){
  • $result = $result." One ".$grade[2];
  • $result = substr($result,0,13)." ";
  • }else{
  • $result = $result." Un ".$grade[2];
  • $result = substr($result,0,12)." ";
  • }
  • }
  • $montant = $montant - ($nombre * 1000000);
  • }
  • // Traitement pour les Milliers
  • $nombre = $montant / 1000;
  • $nombre = intval($nombre);
  • if ($nombre > 0){
  • if ($nombre > 1){
  • $result = $result.cenvtir($nombre,$Langue).$grade[3];
  • }else{
  • if ($Langue == "en"){
  • $result = $result." One ".$grade[3];
  • $result = substr($result,0,12)." ";
  • }else{
  • $result = $result.$grade[3];
  • }
  • }
  • $montant = $montant - ($nombre * 1000);
  • }
  • // Traitement pour les Centaines & centimes
  • $nombre = $montant;
  • if ($nombre>0){
  • $result = $result.cenvtir($nombre,$Langue);
  • }
  • // Traitement si le montant = 1
  • if ((substr($result,0,6) == " et Un" and strlen($result) == 6) or (substr($result,0,4) == " One" and strlen($result) == 4)){
  • if ($Langue != "en"){
  • $result = substr($result,3,3);
  • }
  • $result = $result.$Mon[0];
  • if (intval($centime) != 0){
  • $differ = cenvtir(intval($centime),$Langue);
  • if (substr($differ,0,6) == " et Un" or substr($differ,0,4) == " One"){
  • if ($result != ""){
  • if ($Langue == "en"){
  • $differ = " and ".$differ;
  • }
  • }else{
  • if ($Langue != "en"){
  • $differ = substr($differ,3);
  • }
  • }
  • $result = $result." ".$differ.$Mon[2];
  • }else{
  • if ($Langue != "en"){
  • $result = $result." et ".$differ.$Mon[3];
  • }else{
  • $result = $result." and ".$differ.$Mon[3];
  • }
  • }
  • }
  • // Traitement si le montant > 1 ou = 0
  • }else{
  • if ($result != ""){
  • $result = $result.$Mon[1];
  • }
  • if (intval($centime) != 0){
  • $differ = cenvtir(intval($centime),$Langue);
  • if (substr($differ,0,6) == " et Un" or substr($differ,0,4) == " One"){
  • if ($result != ""){
  • if ($Langue == "en"){
  • $differ = " and ".$differ;
  • }
  • }else{
  • if ($Langue != "en"){
  • $differ = substr($differ,3);
  • }
  • }
  • $result = $result." ".$differ.$Mon[2];
  • }else{
  • if ($result != ""){
  • if ($Langue != "en"){
  • $result = $result." et ".$differ.$Mon[3];
  • }else{
  • $result = $result." and ".$differ.$Mon[3];
  • }
  • }else{
  • $result = $differ.$Mon[3];
  • }
  • }
  • }
  • }
  • }
  • return $result;
  • }
  • // fonction de convertion d'un chiffre à 3 digits en lettre
  • function cenvtir($Valeur,$Langue){
  • $code = "";
  • if ($Langue == "en"){
  • //text en claire pour l'anglais
  • $SUnit = "One Two Three Four Five Six Seven Eight Nine Ten Eleven Twelve Thirteen Fourteen Fifteen Sixteen SeventeenEighteen Nineteen ";
  • $SDiz = "Twenty Thirty Forty Fifty Sixty SeventyEighty Ninety ";
  • if ($Valeur>99) {
  • $N1= intval($Valeur/100);
  • if ($N1>1){
  • $code = $code.trim(substr($SUnit,($N1-1)*9,9));
  • }
  • $Valeur = $Valeur - ($N1*100);
  • if ($code != ""){
  • $code = $code." Hundreds ";
  • }else{
  • $code = " One Hundred ";
  • }
  • }
  • if ($Valeur != 0){
  • if ($Valeur > 19) {
  • $N1 = intval($Valeur/10);
  • $code = $code.trim(substr($SDiz,($N1-2)*7,7));
  • $N1 = intval($Valeur/10)*10;
  • $Valeur = $Valeur - $N1;
  • }
  • if ($Valeur > 0){
  • $code = $code." ".trim(substr($SUnit,(intval($Valeur)-1)*9,9));
  • }
  • }
  • }else{
  • //text en claire pour le français
  • $SUnit = "et Un Deux Trois Quatres Cinq Six Sept Huit Neuf Dix Onze Douze Treize QuatorzeQuinze Seize Dix-SeptDix-HuitDix-Neuf";
  • $SDiz = "Vingt Trente Quarante Cinquante Soixante Soixante Quatre VingtQuatre Vingt";
  • if ($Valeur>99) {
  • $N1= intval($Valeur/100);
  • if ($N1>1){
  • $code = $code.trim(substr($SUnit,($N1-1)*8,8));
  • }
  • $Valeur = $Valeur - ($N1*100);
  • if ($code != ""){
  • $code = $code." Cents ";
  • }else{
  • $code = " Cent ";
  • }
  • }
  • if ($Valeur != 0){
  • if ($Valeur > 19) {
  • $N1 = intval($Valeur/10);
  • $code = $code.trim(substr($SDiz,($N1-2)*12,12));
  • $N1 = intval($Valeur/10)*10;
  • if (($Valeur>=70) and($Valeur<80)or($Valeur>=90)){
  • $Valeur = $Valeur + 10;
  • }
  • $Valeur = $Valeur - $N1;
  • }
  • if ($Valeur > 0){
  • $code = $code." ".trim(substr($SUnit,(intval($Valeur)-1)*8,8));
  • }
  • }
  • }
  • return $code;
  • }
  • ?>
<?php

// fonction pour transformer les montants chiffre => montant en lettre
function convertir($Montant,$Monnaie,$Langue){

	// Valeur en anglais et en français
	if ($Langue == "en"){
		$grade = array(0 => "Zero ",1=>" Billions ",2=>" Millions ",3=>" Thousands ");
	}else{
		$grade = array(0 => "Zero ",1=>" Milliards ",2=>" Millions ",3=>" Mille ");
	}
	
	// les différente Monnaie
	if ($Monnaie == "USD"){
		$Mon = array(0=>" Dollar",1=>" Dollars",2=>" Cent",3=>" Cents");
	}elseif ($Monnaie == "CAD"){
		$Mon = array(0=>" Dollar",1=>" Dollars",2=>" Cent",3=>" Cents");
	}elseif ($Monnaie == "GBP"){
		$Mon = array(0=>" Pound",1=>" Pounds",2=>" Penny",3=>" Pence");
	}else{
		$Mon = array(0=>" Euro",1=>" Euros",2=>" Cent",3=>" Cents");
	}

	// Mise au format pour les chéque et le SWI

	$Montant = number_format($Montant,2,".","");

	// Si montant = Zero
	if ($Montant == 0){
		$result = $grade[0].$Mon[0];
	}else{

		$result = "";

		// Calcule des Unités
		$montant = intval($Montant);

		// Calcule des centimes
		$centime = round(($Montant * 100) - ($montant * 100),0);

		// Traitement pour les Milliards
		$nombre = $montant / 1000000000;
		$nombre = intval($nombre);
		if ($nombre > 0){
			if ($nombre > 1){
				$result = $result.cenvtir($nombre,$Langue).$grade[1];
			}else{
				if ($Langue == "en"){
					$result = $result." One ".$grade[1];
					$result = substr($result,0,13)." ";
				}else{
					$result = $result." Un ".$grade[1];
					$result = substr($result,0,13)." ";
				}
			}
			$montant = $montant - ($nombre * 1000000000);
		}

		// Traitement pour les Millions
		$nombre = $montant / 1000000;
		$nombre = intval($nombre);
		if ($nombre > 0){
			if ($nombre > 1){
				$result = $result.cenvtir($nombre,$Langue).$grade[2];
			}else{
				if ($Langue == "en"){
					$result = $result." One ".$grade[2];
					$result = substr($result,0,13)." ";
				}else{
					$result = $result." Un ".$grade[2];
					$result = substr($result,0,12)." ";
				}
			}
			$montant = $montant - ($nombre * 1000000);
		}

		// Traitement pour les Milliers
		$nombre = $montant / 1000;
		$nombre = intval($nombre);
		if ($nombre > 0){
			if ($nombre > 1){
				$result = $result.cenvtir($nombre,$Langue).$grade[3];
			}else{
				if ($Langue == "en"){
					$result = $result." One ".$grade[3];
					$result = substr($result,0,12)." ";
				}else{
					$result = $result.$grade[3];
				}
			}
			$montant = $montant - ($nombre * 1000);
		}

		// Traitement pour les Centaines & centimes
		$nombre = $montant;
		if ($nombre>0){
			$result = $result.cenvtir($nombre,$Langue);
		}

		// Traitement si le montant = 1
		if ((substr($result,0,6) == " et Un" and strlen($result) == 6) or (substr($result,0,4) == " One" and strlen($result) == 4)){
			if ($Langue != "en"){
				$result = substr($result,3,3);
			}
			$result = $result.$Mon[0];
			if (intval($centime) != 0){
				$differ = cenvtir(intval($centime),$Langue);
				if (substr($differ,0,6) == " et Un" or substr($differ,0,4) == " One"){
					if ($result != ""){
						if ($Langue == "en"){
							$differ = " and ".$differ;
						}
					}else{
						if ($Langue != "en"){
							$differ = substr($differ,3);
						}
					}
					$result = $result." ".$differ.$Mon[2];
				}else{
					if ($Langue != "en"){
						$result = $result." et ".$differ.$Mon[3];
					}else{
						$result = $result." and ".$differ.$Mon[3];
					}
				}
			}
		// Traitement si le montant > 1 ou = 0
		}else{
			if ($result != ""){
				$result = $result.$Mon[1];
			}
			if (intval($centime) != 0){
				$differ = cenvtir(intval($centime),$Langue);
				if (substr($differ,0,6) == " et Un" or substr($differ,0,4) == " One"){
					if ($result != ""){
						if ($Langue == "en"){
							$differ = " and ".$differ;
						}
					}else{
						if ($Langue != "en"){
							$differ = substr($differ,3);
						}
					}
					$result = $result." ".$differ.$Mon[2];
				}else{
					if ($result != ""){
						if ($Langue != "en"){
							$result = $result." et ".$differ.$Mon[3];
						}else{
							$result = $result." and ".$differ.$Mon[3];
						}
					}else{
						$result = $differ.$Mon[3];
					}
				}
			}
		}
	}
	return $result;
}

// fonction de convertion d'un chiffre à 3 digits en lettre
function cenvtir($Valeur,$Langue){

	$code = "";

	if ($Langue == "en"){

		//text en claire pour l'anglais
		$SUnit = "One      Two      Three    Four     Five     Six      Seven    Eight    Nine     Ten      Eleven   Twelve   Thirteen Fourteen Fifteen  Sixteen  SeventeenEighteen Nineteen ";
		$SDiz = "Twenty Thirty Forty  Fifty  Sixty  SeventyEighty Ninety ";

		if ($Valeur>99) {
			$N1= intval($Valeur/100);
			if ($N1>1){
				$code = $code.trim(substr($SUnit,($N1-1)*9,9));
			}
			$Valeur = $Valeur - ($N1*100);
			if ($code != ""){
				$code = $code." Hundreds ";
			}else{
				$code = " One Hundred ";
			}
		}
		if ($Valeur != 0){
			if ($Valeur > 19) {
				$N1 = intval($Valeur/10);
				$code = $code.trim(substr($SDiz,($N1-2)*7,7));

				$N1 = intval($Valeur/10)*10;
				$Valeur = $Valeur - $N1;
			}
			if ($Valeur > 0){
				$code = $code." ".trim(substr($SUnit,(intval($Valeur)-1)*9,9));
			}

		}
	}else{

		//text en claire pour le français
		$SUnit = "et Un   Deux    Trois   Quatres Cinq    Six     Sept    Huit    Neuf    Dix     Onze    Douze   Treize  QuatorzeQuinze  Seize   Dix-SeptDix-HuitDix-Neuf";
		$SDiz = "Vingt       Trente      Quarante    Cinquante   Soixante    Soixante    Quatre VingtQuatre Vingt";

		if ($Valeur>99) {
			$N1= intval($Valeur/100);
			if ($N1>1){
				$code = $code.trim(substr($SUnit,($N1-1)*8,8));
			}
			$Valeur = $Valeur - ($N1*100);
			if ($code != ""){
				$code = $code." Cents ";
			}else{
				$code = " Cent ";
			}
		}
		if ($Valeur != 0){
			if ($Valeur > 19) {
				$N1 = intval($Valeur/10);
				$code = $code.trim(substr($SDiz,($N1-2)*12,12));

				$N1 = intval($Valeur/10)*10;
				if (($Valeur>=70) and($Valeur<80)or($Valeur>=90)){
					$Valeur = $Valeur + 10;
				}
				$Valeur = $Valeur - $N1;
			}
			if ($Valeur > 0){
				$code = $code." ".trim(substr($SUnit,(intval($Valeur)-1)*8,8));
			}

		}
	}
	return $code;
}

?>

 Conclusion

c'est bien pour remplir les chèques


 Sources de la même categorie

CRYPTER ET DÉCRYPTER UN HASH par rayman223
SCRIPT CORRECTEUR DE PONCTUATION par nebenobo
RÉDUIRE UN TEXTE À N CARACTÈRES SANS COUPER DE MOT par gazetteSDF
ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8

Commentaires et avis

Commentaire de GRenard le 15/04/2005 13:39:21

Marche pas full...
Essais par toi même :
convertir('19','CAD','fr');  // Dollars
convertir('190','CAD','fr');  // Cent gt Douze Dollars
convertir('1904','CAD','fr');  // Mille Onze Cents atres Ci Dollars

Si tu dis le mille tu montes pas plus haut que 9cents..., tk y bug total ton script, ya un script qui avait lair pas mal mais le tiens marche pas...
T'essais de le corriger ?

Commentaire de maissa_21 le 22/06/2005 13:17:06

ca ne marche pas
et essaye stp de penser à rendre possible de choisir la monnaie autre que celles definies dans ta classe

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales