5/5 (5 avis)
Vue 58 714 fois - Téléchargée 617 fois
<?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; } ?>
25 mars 2007 à 01:39
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
9 mars 2006 à 09:50
8 mars 2006 à 16:32
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 :-)
8 mars 2006 à 16:27
8 mars 2006 à 08:11
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.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.