begin process at 2012 02 15 20:38:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > CONVERTISSEUR CHIFFRES ARABES CHIFFRES ROMAINS ET DATE ROMAINE

CONVERTISSEUR CHIFFRES ARABES CHIFFRES ROMAINS ET DATE ROMAINE


 Information sur la source

Note :
6 / 10 - par 3 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :romain, chiffres, arabes, convertir, date Niveau :Débutant Date de création :07/03/2006 Date de mise à jour :08/03/2006 21:51:09 Vu / téléchargé :48 965 / 447

Auteur : juju1er

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Ce code est une fonction qui permet de convertir les chiffres arabes en chiffres romains... si ca peut être utile pour vos pages Web... J'ai ajouté une fonction pour la date du jour en romain.

Source

  • <?php
  • function arab2rom($nombre_arab)
  • {
  • $nb_b10=array('I','X','C','M');
  • $nb_b5=array('V','L','D');
  • $nbrom='';
  • $nombre=$nombre_arab;
  • if($nombre>=0 && $nombre<4000) // on peut convertir
  • {
  • for($i=3; $i>=0 ; $i--)
  • {
  • $chiffre=floor($nombre/pow(10,$i));
  • if($chiffre>=1)
  • {
  • $nombre=$nombre-$chiffre*pow(10,$i);
  • if($chiffre<=3)
  • {
  • for($j=$chiffre; $j>=1; $j--)
  • {
  • $nbrom=$nbrom.$nb_b10[$i];
  • }
  • }elseif($chiffre==9){
  • $nbrom=$nbrom.$nb_b10[$i].$nb_b10[$i+1];
  • }elseif($chiffre==4){
  • $nbrom=$nbrom.$nb_b10[$i].$nb_b5[$i];
  • }else{
  • $nbrom=$nbrom.$nb_b5[$i];
  • for($j=$chiffre-5; $j>=1; $j--)
  • {
  • $nbrom=$nbrom.$nb_b10[$i];
  • }
  • }
  • }
  • }
  • }
  • else
  • {
  • echo 'Valeur Hors Limite';
  • }
  • return $nbrom;
  • }
  • function daterom()
  • {
  • $mois_rom = array('DEC', 'JAN', 'FEB', 'MAR', 'APR', 'MAI', 'IVN', 'IVL', 'AVG', 'SEP', 'OCT', 'NOV', 'DEC'); // on fait correspondre les indices aux mois on repete decembre a cause du modulo pour que (11+1)%12=0 ca donne decembre et non rien lol
  • // de plus on a ainsi JAN=1, FEB=2, plus simple non?
  • $j = date("d");
  • $mois = round(date("m")); // on arrondi pour pouvoir indexer(sinon au lieu de 3 on a 03 et ca bug!)
  • $annee = date("Y"); // Pour savoir si l'annee sera bissextile ou non
  • $date_romaine='';
  • $taille_mois=31;
  • $ad=0;
  • switch($mois){ //c etait ca ou encore faire deux array...
  • case 3:case 5:case 7: case 10:
  • $ides_mois=15;
  • break;
  • case 1:case 8:case 12:
  • $ides_mois=13;
  • break;
  • case 4:case 6:case 9: case 11:
  • $taille_mois=30;
  • $ides_mois=13;
  • break;
  • default:
  • if($annee%4==0 || $annee%400==0){
  • $taille_mois=29;}
  • else{$taille_mois=28;}
  • $ides_mois=13;
  • break;
  • }
  • // Bon la il faut s y connaitre en calendrier romain :) on decompte les jours avant (a.d.) une certaine date du mois : les calandes (Kalendas) les nones et les ides(13 ou 15 e jour)
  • // Ensuite, on decompte les jours par rapport au mois suivant (prochaine calende)
  • if($j==1){
  • $date_romaine='KAL. '.$mois_rom[$mois].'.';} // les calendes (premier jour du mois)
  • elseif($j<=$ides_mois-8){
  • $ad=$ides_mois-8-$j;
  • $date_romaine='NON. '.$mois_rom[$mois].'.';} // les nones, 5 ou 7 eme jour (8 jours avant les ides)
  • elseif($j<=$ides_mois){
  • $ad=$ides_mois-$j;
  • $date_romaine='ID. '.$mois_rom[$mois].'.';}
  • else{ // avant les calendes du prochain mois
  • $date_romaine='KAL. '.$mois_rom[($mois+1)%12].'.';
  • $ad=$taille_mois-$j+1;
  • }
  • if($ad==1){
  • $date_romaine='PRE '.$date_romaine; // "a.d. II" n existe pas, on dit PRIDIE (la veille)
  • }elseif($mois==2 && $ad+1>=6 && ($annee%4==0 || $annee%400==0)){ /* he oui le mois de fevrier (FEB) pose toujours des problemes ;)*/
  • if($ad+1==6){
  • $date_romaine='a.d. BIS '.arab2rom($ad+1).' '.$date_romaine;} // on utilise ma fonction lol la l année est bissextile
  • else{
  • $date_romaine='a.d. '.arab2rom($ad).' '.$date_romaine; //
  • }
  • }elseif($ad!=0){
  • $date_romaine='a.d. '.arab2rom($ad+1).' '.$date_romaine; // pour les autres mois
  • }
  • // calcul de la date
  • $date_romaine=$date_romaine.' '.arab2rom($annee+753).' A.U.C.';
  • return $date_romaine;
  • }
  • ?>
<?php
function arab2rom($nombre_arab)
{
	$nb_b10=array('I','X','C','M');
	$nb_b5=array('V','L','D');
	$nbrom='';
	$nombre=$nombre_arab;
	if($nombre>=0 && $nombre<4000)  // on peut convertir
		{
		for($i=3; $i>=0 ; $i--) 
		{	
			$chiffre=floor($nombre/pow(10,$i));
			if($chiffre>=1)
				{
					$nombre=$nombre-$chiffre*pow(10,$i);
					if($chiffre<=3)
					{
						for($j=$chiffre; $j>=1; $j--)
							{ 
								$nbrom=$nbrom.$nb_b10[$i]; 
							}
					}elseif($chiffre==9){
						
						 $nbrom=$nbrom.$nb_b10[$i].$nb_b10[$i+1];
						
					}elseif($chiffre==4){
						
						 $nbrom=$nbrom.$nb_b10[$i].$nb_b5[$i];
					}else{
						$nbrom=$nbrom.$nb_b5[$i];
						
						for($j=$chiffre-5; $j>=1; $j--)
							{ 
								$nbrom=$nbrom.$nb_b10[$i]; 
							}	
					}
			
				}			
		}
	       	}
	else
		{
			echo 'Valeur Hors Limite';		
		}		
  	return $nbrom;
}

function daterom()
{
$mois_rom = array('DEC', 'JAN', 'FEB', 'MAR', 'APR', 'MAI', 'IVN', 'IVL', 'AVG', 'SEP', 'OCT', 'NOV', 'DEC'); // on fait correspondre les indices aux mois on repete decembre a cause du modulo pour que (11+1)%12=0 ca donne decembre et non rien lol
// de plus on a ainsi JAN=1, FEB=2, plus simple non?
$j = date("d");
$mois = round(date("m")); // on arrondi pour pouvoir indexer(sinon au lieu de 3 on a 03 et ca bug!)
$annee = date("Y"); // Pour savoir si l'annee sera bissextile ou non
$date_romaine='';
$taille_mois=31;
$ad=0;
switch($mois){  //c etait ca ou encore faire deux array...
	case 3:case 5:case 7: case 10:
	$ides_mois=15;
	break;
	case 1:case 8:case 12:
	$ides_mois=13;
	break;
	case 4:case 6:case 9: case 11:
	$taille_mois=30;
	$ides_mois=13;
	break;
	default:	
	if($annee%4==0 || $annee%400==0){
		$taille_mois=29;}
	else{$taille_mois=28;}
	$ides_mois=13;
	break;
}

// Bon la il faut s y connaitre en calendrier romain :) on decompte les jours avant (a.d.) une certaine date du mois : les calandes (Kalendas) les nones et les ides(13 ou 15 e jour)
// Ensuite, on decompte les jours par rapport au mois suivant  (prochaine calende)

if($j==1){
	$date_romaine='KAL. '.$mois_rom[$mois].'.';}	// les calendes (premier jour du mois)
elseif($j<=$ides_mois-8){
	$ad=$ides_mois-8-$j;
	$date_romaine='NON. '.$mois_rom[$mois].'.';}   // les nones, 5 ou 7 eme jour (8 jours avant les ides)
elseif($j<=$ides_mois){
	$ad=$ides_mois-$j;
	$date_romaine='ID. '.$mois_rom[$mois].'.';}
else{							// avant les calendes du prochain mois
	$date_romaine='KAL. '.$mois_rom[($mois+1)%12].'.';
	$ad=$taille_mois-$j+1;
}
	if($ad==1){	
		$date_romaine='PRE '.$date_romaine; // "a.d. II" n existe pas, on dit PRIDIE (la veille)	
	}elseif($mois==2 && $ad+1>=6 && ($annee%4==0 || $annee%400==0)){ /* he oui le mois de fevrier (FEB) pose toujours des problemes ;)*/
		if($ad+1==6){		
		       	$date_romaine='a.d. BIS '.arab2rom($ad+1).' '.$date_romaine;}  // on utilise ma fonction lol la l année est bissextile
		else{
			$date_romaine='a.d. '.arab2rom($ad).' '.$date_romaine; //
			}
	}elseif($ad!=0){
		$date_romaine='a.d. '.arab2rom($ad+1).' '.$date_romaine;   // pour les autres mois
		}
	// calcul de la date
$date_romaine=$date_romaine.' '.arab2rom($annee+753).' A.U.C.';	
return $date_romaine;
}
?>	

 Conclusion

je pense qu il n y pas de bug j ai fait quelques tests.. dites moi si on peu encore optimiser j ai essayé au maximum. :)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 mars 2006 16:01:49 :
Chose promise chose due! Voici la date du calendrier romain qui respecte les années bissextiles en plus!
08 mars 2006 16:06:50 :
petits problemes de coloration ;-)
08 mars 2006 16:36:41 :
Ajout du ZIP qui fonctionne car sur mon site
08 mars 2006 21:51:09 :
Bug corrigé sur les premier du mois, ajout de la date AUC : ab urbe condita, depuis la fondation de Rome

 Sources de la même categorie

EXEMPLE D'APPLICATION DE L'ALGORITHME DE DIJKSTRA EN PHP par philtr8
CLEF POUR EAN 13 ET 14 par RaftY
FONCTION DE CALCUL DU NOMBRE DE DUEL UNIQUE POUR UN NOMBRE N... par mtrix000
Source avec Zip Source avec une capture TRIANGLE DE PASCAL ET SON ÉQUATION par vendeeHdLR89
Source avec Zip CONVERTISSEUR LAMBERT2 ÉTENDU EN COORDONNÉE GÉOGRAPHIQUE (LO... par varfendell

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CONVERTIR BASE FIREBIRD EN MYSQL par castelfrederic29
Source avec Zip CHIFFRES EN LETTRES par zied9b
CONVERSION DATE FORMAT ANGLAIS-FRANÇAIS + HEURE par shortz
CONVERTIR UN NOMBRE EN JOUR DE L'ANNÉE par bulzy
CONVERSION DATE par hooss

Commentaires et avis

Commentaire de malalam le 08/03/2006 08:11:08 administrateur CS

Hello,

j'ai pas encore testé, mais déjà, je voulais dire que je trouve le thème rigolo et original :-) Et comme en plus, côté code, y a pire...très bien :-) Mais je testerai avant de noter, néanmoins.

Commentaire de juju1er le 08/03/2006 16:27:23

Merci, mais c'est bizarre que la coloration devienne rouge pour tout le code. je vais poster un ZIP c est plus exploitable.

Commentaire de malalam le 08/03/2006 16:32:21 administrateur CS

Mieux vaut les deux de toutes façons...
Il marche bien ton code. Je passe sur les petites inexactitudes de programmation parce qu'il n'y a rien de grave.
C'est pas mal :-)

Commentaire de malalam le 09/03/2006 09:50:32 administrateur CS

T'es une réincarnation de romain ou quoi...? ;-) Les dates maintenant...!

Commentaire de mike313 le 25/03/2007 01:39:39

SALUT A VOUS
JE NE SAIS PAS COMMENT CA MARCHE ALOR JE VOUS DEMANDE SI VOUS POUVEZ ME DIRE LA TRADUCTION DE CETTE DATE EN DATE ROMAINE ? 25 MARS 1985.
Merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Convertir des chiffres arabes en chiffres romains [ par lio119 ] Bonjour à tous, Voilà en cherchant sur le net, j'ai trouvé une fonction permettant de convertir des chiffres arabes en chiffres romains. J'ai rajouté convertir chaine en date [ par habibcode ] salut à tous,j'ai fait une application en php/mysql  et céer un champs date_rv de type varchar mais le problème se passe quand je fait un tri pour aff convertir date Fr en anglais avant enregistrement mysql [ par bruno3591 ] Bonjour,Tout est dit dans le titre ou presque.Je me sers d'un code javascript pour faire apparaitre un petit calendrier qui, une fois la date choisit, Convertir une Date au format Timestamp [ par Touf ] Salut !J'ai un petit pb : j'accède à une Date stockée dans une bdd mysql sous la forme (timestamp) "YmdHis" : 20020608105031J'aimerais l'afficher sous convertir date française en timestamp [ par dreaman ] Bjour,j ai une date&nbsp;avec ce format "17/01/2005&nbsp; 16:33:14" et je voudrai la transformer en timestamp. Please, c'est un petit probleme mais il convertir une date dd/mm/aaaa en aaaa-mm-dd [ par aquewel ] mon probleme est dans le titreje trouve rien rien ne marche si vous pouviez m'aider a trouver le chemin ca serait cool !!!! merci convertir une date... [ par astyax ] Salut à tous,voilà, j'aimerai savoir comment réussir à convertir une date qui apparait comme ça:Wed, 10 Nov 2004 13:05:41 +0100en une date comme ça :1 Convertir TimeStamp en date dans un tableau excel [ par dreaman ] Convertir TimeStamp en date dans un tableau excel basic Convertir une date [ par RM50Man ] Comment fait on pour convertir une date que je sors de ma base de donn&#233;e,au format francais par exemple.J aimerais convertir cette date au format convertir date 10/12/2005 10:12:50 en timestamp [ par mictif ] Bonjour, j'aimerai convertir une date sous la forme : '10/12/2005 10:12:50' en timestamp pour mysql mais je n'y arive pas... si quelqu'un peut m'aider


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,359 sec (4)

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