|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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. :)
Fichier Zip
Pour les "Membres Club", vous pouvez 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
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
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
Afficher la date "Hejir" (kestion pr les dév arabes kom moi :-) ) [ par Leila83 ]
Mes cordiales salutations à ts les dév de phpcs.com et en particuliers aux admins du site ;) Sur certains sites arabes, il existe la date ke tt le mo
Convertir une date en français [ par malaysia ]
Bonsoir,J'ai passé l'après-midi sur un truc tout bête je suppose mais que je n'arrive pas à résoudre. Je récupère u
Convertir une date [ par kangoo75 ]
Bonjour, Je suis ultra débutant en PHP, et j'aimerais savoir la fonction pour transformer une date par exemple : 25-12-2005 en lundi 25 déce
|
Téléchargements
Logiciels à télécharger sur le même thème :
|