# Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
# All rights reserved. See LICENSE file for licensing details
-// Calali UTF Calendar code by Omid Mottaghi
+// Jalali UTF Calendar code by Omid Mottaghi
function calendar_jalali_utf($format, $timestamp, $useOffset) {
+
$g_d=date('j', $timestamp);
$g_m=date('n', $timestamp);
$g_y=date('Y', $timestamp);
$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);
- $j_month_name = array('', 'فروردین', 'اردیبهشت', 'خرداد', 'تیر',
- 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند');
- $j_week_name = array('Saturday' => 'شنبه',
- 'Sunday' => 'یک شنبه',
- 'Monday' => 'دوشنبه',
- 'Tuesday' => 'سه شنبه',
- 'Wednesday' => 'چهارشنبه',
- 'Thursday' => 'پنج شنبه',
- 'Friday' => 'جمعه',
- 'Sat' => 'ش',
- 'Sun' => 'ی',
- 'Mon' => 'د',
- 'Tue' => 'س',
- 'Wed' => 'چ',
- 'Thu' => 'پ',
- 'Fri' => 'ج');
- $j_week_number = array('Sat' => '1',
- 'Sun' => '2',
- 'Mon' => '3',
- 'Tue' => '4',
- 'Wed' => '5',
- 'Thu' => '6',
- 'Fri' => '7');
-
+ $j_month_name = array('', 'فروردین', 'اردیبهشت', 'خرداد', 'تیر',
+ 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند');
+ $j_week_name = array('Saturday' => 'شنبه',
+ 'Sunday' => 'یک شنبه',
+ 'Monday' => 'دوشنبه',
+ 'Tuesday' => 'سه شنبه',
+ 'Wednesday' => 'چهارشنبه',
+ 'Thursday' => 'پنج شنبه',
+ 'Friday' => 'جمعه',
+ 'Sat' => 'ش',
+ 'Sun' => 'ی',
+ 'Mon' => 'د',
+ 'Tue' => 'س',
+ 'Wed' => 'چ',
+ 'Thu' => 'پ',
+ 'Fri' => 'ج');
+ $j_week_number = array('Sat' => '1',
+ 'Sun' => '2',
+ 'Mon' => '3',
+ 'Tue' => '4',
+ 'Wed' => '5',
+ 'Thu' => '6',
+ 'Fri' => '7');
+
$gy = $g_y-1600;
$gm = $g_m-1;
$gd = $g_d-1;
$g_day_no = 365*$gy+floor(($gy+3)/4)-floor(($gy+99)/100)+floor(($gy+399)/400);
- for ($i=0; $i < $gm; ++$i) {
+ for ($i=0; $i < $gm; ++$i)
$g_day_no += $g_days_in_month[$i];
- }
-
- if ($gm>1 && (($gy%4==0 && $gy%100!=0) || ($gy%400==0))) {
+
+ if ($gm>1 && (($gy%4==0 && $gy%100!=0) || ($gy%400==0)))
/* leap and after Feb */
++$g_day_no;
- }
-
+
$g_day_no += $gd;
$j_day_no = $g_day_no-79;
$j_np = floor($j_day_no/12053);
if($percent_sign){ $output_str.=floor($jy/100); $percent_sign=0; }
break;
case 'd':
- if($percent_sign){ $output_str.=$jd; $percent_sign=0; }
+ if($percent_sign){ if($jd<10) $output_str.='0'.$jd; else $output_str.=$jd; $percent_sign=0; }
break;
case 'D':
if($percent_sign){ $output_str.=$jm.'/'.$jd.'/'.$jy; $percent_sign=0; }
break;
case 'e':
- if($percent_sign){ $output_str.=sprintf("%2d", $jm); $percent_sign=0; }
+ if($percent_sign){ if($jd<10) $output_str.=' '.$jd; else $output_str.=$jd; $percent_sign=0; }
break;
case 'H':
if($percent_sign){ $output_str.=date('H', $timestamp); $percent_sign=0; }
if($percent_sign){ $output_str.=sprintf("%03d", $j_all_days); $percent_sign=0; }
break;
case 'm':
- if($percent_sign){ $output_str.=$jm; $percent_sign=0; }
+ if($percent_sign){ if($jm<10) $output_str.='0'.$jm; else $output_str.=$jm; $percent_sign=0; }
break;
case 'M':
if($percent_sign){ $output_str.=date('i', $timestamp); $percent_sign=0; }
case 'X': // incomplete
if($percent_sign){ /*$output_str.=$format[$i];*/ $percent_sign=0; }
break;
+ case 'g':
case 'y':
if($percent_sign){ $output_str.=$jy-(floor($jy/100)*100); $percent_sign=0; }
break;
- case 'g':
case 'G':
case 'Y':
if($percent_sign){ $output_str.=$jy; $percent_sign=0; }
if($percent_sign){ /*$output_str.=$format[$i];*/ $percent_sign=0; }
break;
case '%':
- if($percent_sign){ $output_str.='%'; } else { $percent_sign=1; }
+ if($percent_sign){ $outpus_str.='%'; } else { $percent_sign=1; }
break;
default:
$output_str.=$format[$i];
$percent_sign=0;
}
}
-
return $output_str;
}
?>
\ No newline at end of file