From: omidmottaghi Date: Mon, 4 Jul 2005 08:53:36 +0000 (+0000) Subject: j2g added (Jalali to Gregorian) X-Git-Tag: 0.9~351 X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=24a35af87238dba446151019693cff7e4cfee0d1;p=s9y.git j2g added (Jalali to Gregorian) --- diff --git a/include/functions_calendars.inc.php b/include/functions_calendars.inc.php index 0960342..96b012d 100644 --- a/include/functions_calendars.inc.php +++ b/include/functions_calendars.inc.php @@ -45,6 +45,49 @@ function g2j($g_y, $g_m, $g_d){ return array($jy, $jm, $jd); } +// Gregorian to Jalali Convertor, by farsiweb.info +function j2g($j_y, $j_m, $j_d){ + $g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); + $j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29); + $jy = $j_y-979; + $jm = $j_m-1; + $jd = $j_d-1; + $j_day_no = 365*$jy + floor($jy/33)*8 + floor(($jy%33+3)/4); + for ($i=0; $i < $jm; ++$i){ + $j_day_no += $j_days_in_month[$i]; + } + $j_day_no += $jd; + $g_day_no = $j_day_no+79; + $gy = 1600 + 400*floor($g_day_no/146097); + $g_day_no = $g_day_no % 146097; + $leap = true; + if ($g_day_no >= 36525){ + $g_day_no--; + $gy += 100*floor($g_day_no/36524); + $g_day_no = $g_day_no % 36524; + if ($g_day_no >= 365){ + $g_day_no++; + }else{ + $leap = false; + } + } + $gy += 4*floor($g_day_no/1461); + $g_day_no %= 1461; + if ($g_day_no >= 366){ + $leap = false; + $g_day_no--; + $gy += floor($g_day_no/365); + $g_day_no = $g_day_no % 365; + } + for ($i = 0; $g_day_no >= $g_days_in_month[$i] + ($i == 1 && $leap); $i++){ + $g_day_no -= $g_days_in_month[$i] + ($i == 1 && $leap); + } + $gm = $i+1; + $gd = $g_day_no+1; + + return array($gy, $gm, $gd); +} + // Jalali UTF Calendar code by Omid Mottaghi function calendar_jalali_utf($format, $timestamp) {