This didn't seem to get much notice the first time I sent it, so as
per the suggestion at (http://php.net/svn-php.php), I'm resending it.
It would be great if someone could commit it to the source tree so
this bug can be closed. Please let me know if I need to do something
differently or if you have questions or objections.

This is a patch to fix the main issue in bug #54254 (the other issue
mentioned would require some structural changes in how calendars are
handled and is more of a feature request), cal_from_jd(CAL_JEWISH)
returns month=6 for Adar when there is only one Adar, (it should
return 7, since if there is only one Adar it's AdarII). This will
clear up an issue where cal_from_jd() returns a month that
cal_days_in_month() reports to have 0 days due to an inconsistency in
how dates are converted to and from the Jewish calendar. This patch
should create the correct behavior.

Thanks,
Eitan

https://bugs.php.net/bug.php?id=54254
Index: ext/calendar/tests/jdtojewish.phpt
===================================================================
--- ext/calendar/tests/jdtojewish.phpt	(revision 322030)
+++ ext/calendar/tests/jdtojewish.phpt	(working copy)
@@ -14,10 +14,11 @@
 	jdtojewish(gregoriantojd(10,8,2002),true, CAL_JEWISH_ADD_GERESHAYIM)."\r\n".
 	jdtojewish(gregoriantojd(10,8,2002),true, CAL_JEWISH_ADD_GERESHAYIM+CAL_JEWISH_ADD_ALAFIM_GERESH)."\r\n".
 	jdtojewish(gregoriantojd(10,8,2002),true, CAL_JEWISH_ADD_GERESHAYIM+CAL_JEWISH_ADD_ALAFIM)."\r\n".
-	jdtojewish(gregoriantojd(10,8,2002),true, CAL_JEWISH_ADD_GERESHAYIM+CAL_JEWISH_ADD_ALAFIM+CAL_JEWISH_ADD_ALAFIM_GERESH)."\r\n");
+	jdtojewish(gregoriantojd(10,8,2002),true, CAL_JEWISH_ADD_GERESHAYIM+CAL_JEWISH_ADD_ALAFIM+CAL_JEWISH_ADD_ALAFIM_GERESH)."\r\n".
+	jdtojewish(gregoriantojd(3,10,2007))."\r\n");
 ?>
 --EXPECT--
-string(184) "2/22/5763
+string(195) "2/22/5763
 כב חשון התשסג
 כב חשון ה'תשסג
 כב חשון ה אלפים תשסג
@@ -27,4 +28,5 @@
 ב' חשון ה'תשס"ג
 ב' חשון ה אלפים תשס"ג
 ב' חשון ה' אלפים תשס"ג
+7/20/5767
 "
Index: ext/calendar/jewish.c
===================================================================
--- ext/calendar/jewish.c	(revision 322030)
+++ ext/calendar/jewish.c	(working copy)
@@ -587,11 +587,11 @@
 				(*pMonth)--;
 				(*pDay) += 30;
 			} else {
-				*pMonth = 6;
+				*pMonth = 7;
 				*pDay = inputDay - tishri1 + 207;
 				if (*pDay > 0)
 					return;
-				(*pMonth)--;
+				(*pMonth)-=2;
 				(*pDay) += 30;
 			}
 			if (*pDay > 0)
-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to