Accueil > > > CONVERTISSEUR CHIFFRES ARABES CHIFFRES ROMAINS ET DATE ROMAINE
CONVERTISSEUR CHIFFRES ARABES CHIFFRES ROMAINS ET DATE ROMAINE
Information sur la source
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. :)
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
Commentaires et avis
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 avec ce format "17/01/2005 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é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
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|