+ global $SysPrefs;
+
+ list($day, $month, $year) = explode_date_to_dmy($date);
+
+ $months += $year*12+$month;
+ $month = ($months-1)%12+1;
+ $year = ($months-$month)/12;
+
+ $timet = mktime(0,0,0, $month, min($day, days_in_month($month, $year)), $year);
+
+ if ($SysPrefs->date_system == 1 || $SysPrefs->date_system == 2)
+ {
+ if ($SysPrefs->date_system == 1)
+ list($year, $month, $day) = gregorian_to_jalali(date("Y", $timet), date("n", $timet), date("j", $timet));
+ elseif ($SysPrefs->date_system == 2)
+ list($year, $month, $day) = gregorian_to_islamic(date("Y", $timet), date("n", $timet), date("j", $timet));
+ return __date($year, $month, $day);
+ }
+ list($year, $month, $day) = explode("-", date("Y-m-d", $timet));
+ return __date($year, $month, $day);
+}
+
+function add_years($date, $years) // accepts negative values as well
+{
+ global $SysPrefs;
+
+ list($day, $month, $year) = explode_date_to_dmy($date);
+ $timet = Mktime(0,0,0, $month, $day, $year + $years);
+ if ($SysPrefs->date_system == 1 || $SysPrefs->date_system == 2)
+ {
+ if ($SysPrefs->date_system == 1)
+ list($year, $month, $day) = gregorian_to_jalali(date("Y", $timet), date("n", $timet), date("j", $timet));
+ elseif ($SysPrefs->date_system == 2)
+ list($year, $month, $day) = gregorian_to_islamic(date("Y", $timet), date("n", $timet), date("j", $timet));
+ return __date($year, $month, $day);
+ }
+ list($year, $month, $day) = explode("-", date("Y-m-d", $timet));
+ return __date($year, $month, $day);