array( "name" => "January", "abbr" => "Ian.", "nones" => 5, "ides" => 13, "days" => 31 ), array( "name" => "February", "abbr" => "Feb.", "nones" => 5, "ides" => 13, "days" => 28 ), array( "name" => "March", "abbr" => "Mart.", "nones" => 7, "ides" => 15, "days" => 31 ), array( "name" => "April", "abbr" => "Apr.", "nones" => 5, "ides" => 13, "days" => 30 ), array( "name" => "May", "abbr" => "Mai.", "nones" => 7, "ides" => 15, "days" => 31 ), array( "name" => "June", "abbr" => "Iun.", "nones" => 5, "ides" => 13, "days" => 30 ), array( "name" => "July", "abbr" => "Iul.", "nones" => 7, "ides" => 15, "days" => 31 ), array( "name" => "August", "abbr" => "Aug.", "nones" => 5, "ides" => 13, "days" => 31 ), array( "name" => "September", "abbr" => "Sept.", "nones" => 5, "ides" => 13, "days" => 30 ), array( "name" => "October", "abbr" => "Oct.", "nones" => 7, "ides" => 15, "days" => 31 ), array( "name" => "November", "abbr" => "Nov.", "nones" => 5, "ides" => 13, "days" => 30 ), array( "name" => "December", "abbr" => "Dec.", "nones" => 5, "ides" => 13, "days" => 31 ), array( "name" => "January", "abbr" => "Ian.", "nones" => 5, "ides" => 13, "days" => 31 ) ); function convertdigit($num, $x, $l, $c) { if ($num < 4) { $digit = str_repeat($x, $num); } else if ($num == 4) { $digit = $x . $l; } else if ($num == 5) { $digit = $l; } else if ($num < 9 ) { $digit = $l . str_repeat($x, $num - 5); } else { $digit = $x.$c; } return $digit; } function arabictoroman($arabic) { $arabic = "0000" . $arabic; $arabic = substr($arabic, -4); $roman = ""; for ($k=0; $k<4; $k++) { if ($k==3) {$a="i"; $b="v"; $c="x";} if ($k==2) {$a="x"; $b="l"; $c="c";} if ($k==1) {$a="c"; $b="d"; $c="m";} if ($k==0) {$a="m"; $b=""; $c="";} $d = substr($arabic,$k,1); $roman .= convertdigit((int)$d, $a, $b, $c); } return $roman; } function kalends($da, $mo, $arabic_yr, $leap, $caps) { global $months; $yr = arabictoroman($arabic_yr); $abbr = $months[$mo]['abbr']; $nones = $months[$mo]['nones']; $ides = $months[$mo]['ides']; $days = $months[$mo]['days']; $nonescount = $nones - $da + 1; $idescount = $ides - $da + 1; $kalendscount = $days - $da + 2; $monextnum = $mo+1; $monext = $months[$monextnum]['abbr']; if ($da == 1) { $romandate = "kal. $abbr $yr"; } else if ($da < $nones - 1) { $romandate = "a.d. " . arabictoroman($nonescount) . " non. $abbr $yr"; } else if ($da == $nones - 1) { $romandate="prid. non. $abbr $yr"; } else if ($da == $nones) { $romandate="non. $abbr $yr"; } else if ($da < $ides - 1) { $romandate="a.d. " . arabictoroman($idescount) . " id. $abbr $yr"; } else if ($da == $ides - 1) { $romandate="prid. id. $abbr $yr"; } else if ($da == $ides) { $romandate="id. $abbr $yr"; } else if ($da == 25 && $days == 29) { $romandate="a.d. bis vi kal. mart."; } else if ($da < $days) { $romandate = "a.d. " . arabictoroman($kalendscount) . " kal. $monext $yr"; } else { $romandate="prid. kal. $monext $yr"; } if ($caps) { $romandate = strtoupper($romandate); } return $romandate; } function romanise($result='') { $t = strtotime($result); if (strcmp(date('L', $t), '1') == 0) { $leap = true; } else { $leap = false; } return kalends((int)date('j',$t) + 1, (int)date('m', $t), (int)date('Y', $t), $leap, true); }