48typedef char *(*cal_as_string_func_t) (
int year,
int month,
int day);
72#define JEWISH_MONTH_NAME(year) ((monthsPerYear[((year)-1) % 19] == 13)?JewishMonthNameLeap:JewishMonthName)
73#define JEWISH_HEB_MONTH_NAME(year) ((monthsPerYear[((year)-1) % 19] == 13)?JewishMonthHebNameLeap:JewishMonthHebName)
86static const char alef_bet[25] =
"0\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEB\xEC\xEE\xF0\xF1\xF2\xF4\xF6\xF7\xF8\xF9\xFA";
88#define CAL_JEWISH_ADD_ALAFIM_GERESH 0x2
89#define CAL_JEWISH_ADD_ALAFIM 0x4
90#define CAL_JEWISH_ADD_GERESHAYIM 0x8
107#ifdef COMPILE_DL_CALENDAR
113 register_calendar_symbols(module_number);
125static void _php_cal_info(
int cal,
zval *
ret)
127 zval months, smonths;
131 calendar = &cal_conversion_table[cal];
142 add_assoc_zval(
ret,
"months", &months);
143 add_assoc_zval(
ret,
"abbrevmonths", &smonths);
145 add_assoc_string(
ret,
"calname", calendar->
name);
146 add_assoc_string(
ret,
"calsymbol", calendar->
symbol);
166 _php_cal_info(i, &
val);
197 calendar = &cal_conversion_table[cal];
199 sdn_start = calendar->
to_jd(year, month, 1);
201 if (sdn_start == 0) {
206 sdn_next = calendar->
to_jd(year, 1 + month, 1);
213 sdn_next = calendar->
to_jd(1, 1, 1);
216 sdn_next = calendar->
to_jd(year + 1, 1, 1);
250 int month, day, year, dow;
261 calendar = &cal_conversion_table[cal];
265 calendar->
from_jd(jd, &year, &month, &day);
301 int year, month, day;
330 int year, month, day;
361static char *heb_number_to_chars(
int n,
int fl,
char **
ret)
363 char *
p, old[18], *endofalafim;
365 p = endofalafim = old;
370 if (
n > 9999 ||
n < 1) {
377 *
p = alef_bet[
n / 1000];
386 strcpy(
p,
" \xE0\xEC\xF4\xE9\xED ");
403 *
p = alef_bet[18 +
n / 100];
409 if (
n == 15 ||
n == 16) {
412 *
p = alef_bet[
n - 9];
417 *
p = alef_bet[9 +
n / 10];
430 switch (
p - endofalafim) {
456 int year, month, day;
467 if (year <= 0 || year > 9999) {
501 int year, month, day;
531 const char *daynamel, *daynames;
560 const char *monthname =
NULL;
561 int month, day, year;
jdtofrench(int $julian_day)
jdmonthname(int $julian_day, int $mode)
frenchtojd(int $month, int $day, int $year)
cal_info(int $calendar=-1)
jddayofweek(int $julian_day, int $mode=CAL_DOW_DAYNO)
cal_to_jd(int $calendar, int $month, int $day, int $year)
gregoriantojd(int $month, int $day, int $year)
jdtojulian(int $julian_day)
cal_days_in_month(int $calendar, int $month, int $year)
jdtojewish(int $julian_day, bool $hebrew=false, int $flags=0)
cal_from_jd(int $julian_day, int $calendar)
jewishtojd(int $month, int $day, int $year)
juliantojd(int $month, int $day, int $year)
jdtogregorian(int $julian_day)
const char *const DayNameLong[7]
const char *const DayNameShort[7]
int DayOfWeek(zend_long sdn)
zend_long(* cal_to_jd_func_t)(int month, int day, int year)
#define CAL_JEWISH_ADD_ALAFIM
#define CAL_JEWISH_ADD_ALAFIM_GERESH
#define JEWISH_HEB_MONTH_NAME(year)
@ CAL_MONTH_GREGORIAN_LONG
@ CAL_MONTH_GREGORIAN_SHORT
void(* cal_from_jd_func_t)(zend_long jd, int *year, int *month, int *day)
#define CAL_JEWISH_ADD_GERESHAYIM
#define JEWISH_MONTH_NAME(year)
zend_module_entry calendar_module_entry
zend_long FrenchToSdn(int year, int month, int day)
const char *const FrenchMonthName[14]
void SdnToFrench(zend_long sdn, int *pYear, int *pMonth, int *pDay)
const char *const MonthNameShort[13]
zend_long GregorianToSdn(int inputYear, int inputMonth, int inputDay)
void SdnToGregorian(zend_long sdn, int *pYear, int *pMonth, int *pDay)
const char *const MonthNameLong[13]
const char *const JewishMonthNameLeap[14]
zend_long JewishToSdn(int year, int month, int day)
void SdnToJewish(zend_long sdn, int *pYear, int *pMonth, int *pDay)
void SdnToJulian(zend_long sdn, int *pYear, int *pMonth, int *pDay)
zend_long JulianToSdn(int inputYear, int inputMonth, int inputDay)
php_info_print_table_start()
php_info_print_table_row(2, "PDO Driver for Firebird", "enabled")
php_info_print_table_end()
#define PHP_MINIT_FUNCTION
#define PHP_MINFO_FUNCTION
#define PHP_CALENDAR_VERSION
cal_from_jd_func_t from_jd
const char *const * month_name_long
const char *const * month_name_short
ZEND_API zend_string * zend_strpprintf(size_t max_len, const char *format,...)
ZEND_API ZEND_COLD void zend_value_error(const char *format,...)
ZEND_API void add_index_string(zval *arg, zend_ulong index, const char *str)
ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec,...)
ZEND_API ZEND_COLD void zend_argument_value_error(uint32_t arg_num, const char *format,...)
#define RETVAL_NEW_STR(s)
#define ZEND_GET_MODULE(name)
#define RETURN_NEW_STR(s)
#define estrndup(s, length)
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)
#define STANDARD_MODULE_HEADER
struct _zend_module_entry zend_module_entry
#define STANDARD_MODULE_PROPERTIES