Oui, j'ai vu ton edit ;p et justement j'étais en train de voir ça pour l'opération inverse, c'est à dire transformer les dates IG en dates IRL et dans l'autre sens c'esy bon :
Code: Select all
IRL => IG :
// tableaux utilisés pour les chaines de caractères
$tabdays = array('Prima', 'Dua', 'Tria', 'Quarta', 'Quinteth', 'Holeth');
$tabmonths = array('Winderly', 'Germinally', 'Folially', 'Floris', 'Medis', 'Thermis', 'Harvestor', 'Frutor', 'Fallenor', 'Pluvia', 'Mystia', 'Nivia');
$tabseasons = array('Printemps', 'Eté', 'Automne', 'Hiver');
$tabcycles = array('1er', '2e', '3e', '4e');
$courant = time(); // date actuelle
$time = 1096171288; // date d'origine = probablement fausse :)
// calcul des secondes écoulées dans le jeu, 1 seconde IRL = 20 secondes IG
$secondes = ($courant-$time) * 20;
// calcul des secondes pour l'heure IG
$s = $secondes % 60;
$minutes = floor($secondes / 60);
// calcul des minutes pour l'heure IG, 60 secondes par minute
$i = $minutes % 60;
$heures = floor($minutes / 60);
// calcul des heures pour l'heure IG, 24 heures par jour
$h = $heures % 24;
$jours = floor($heures / 24);
// calcul du jour pour la date IG, 30 jours par mois
$j = ($jours % 30)+1;
$mois = floor($jours / 30);
// calcul du mois pour la date IG, 12 mois par cycle
$m = ($mois % 12)+1;
$cycles = floor($mois / 12);
// calcul du cycle pour la date IG, 4 cycles par Année de Jena (JY)
$c = ($cycles % 4)+1;
$annees = floor($cycles / 4);
// calcul de l'année
$a = $annees + 2525;
// format de date complet
print $tabdays[$jours % 6].", ".$tabmonths[$mois % 12]." $j, ".$tabcycles[$cycles % 4]." CA $a (JY) à $h:$i:$s<br/>\n";
Code: Select all
IG => IRL :
$time = 1096171288; // date d'origine = probablement fausse :)
$jy = 2532; // Jena Year
$ac = 1; // Atys Cycles
$m = 1; // mois
$d = 25; // jour
$h = 0; // heures
$i = 0; // minutes
$s = 0; // secondes
// calcul des secondes écoulées IRL, 1 seconde IRL = 20 secondes IG
$secondes = $time + ($s + 60 * ($i + 60 * ($h + 24 * (($d-1) + 30 * (($m-1) + 12 * (($ac-1) + ($jy-2525) * 4 )))))) / 20;
print "Date IRL : ".date("d/m/Y \à H:i:s", $secondes)."<br/>\n";
Si vous voulez faire des tests, vous pouvez essayer :
http://www.jpopdb.net/atys.php
Il y a encore des problèmes car le jour donné sur l'affiche de la pièce de théatre à FH (
http://www.ryzom.com/forum/showthread.php?p=275570) donne un décallage d'1 jour
Edit: apparemment, j'ai du me gourrer qq part, car les downs du serveur auraient faire avancer la date d'origine or je l'ai faite reculer et c'est presque bon