module Calendrical
Constants
- VERSION
Public Class Methods
bahai_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_bahai_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 20); iy = NUM2INT(y); md = bahai_last_day_of_month(iy, im); return INT2NUM(md); }
bahai_leap_year(p1)
click to toggle source
static VALUE calendrical_bahai_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = bahai_leap_year(iy); return INT2BOOL(l); }
bahai_leap_year?(p1)
click to toggle source
static VALUE calendrical_bahai_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = bahai_leap_year(iy); return INT2BOOL(l); }
bahai_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_bahai_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 20); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 19); iy = NUM2INT(y); a = bahai_to_rd(iy, im, imd); rd_to_bahai(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
bahai_vahid_to_year(p1, p2, p3)
click to toggle source
static VALUE calendrical_bahai_vahid_to_year(VALUE obj, VALUE k, VALUE v, VALUE y) { int ik, iv, iy, iy2; ik = NUM2INT(k); iv = NUM2INT(v); CHECK_DOMAIN2(iv, 1, 19); iy = NUM2INT(y); CHECK_DOMAIN2(iy, 1, 19); iy2 = bahai_vahid_to_year(ik, iv, iy); return INT2NUM(iy2); }
bahai_year_to_vahid(p1)
click to toggle source
static VALUE calendrical_bahai_year_to_vahid(VALUE obj, VALUE y) { int iy, k, v, iy2; iy = NUM2INT(y); bahai_year_to_vahid(iy, &k, &v, &iy2); return rb_ary_new3(3, INT2NUM(k), INT2NUM(v), INT2NUM(iy2)); }
bengali_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_bengali_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); iy = NUM2INT(y); md = bengali_last_day_of_month(iy, im); return INT2NUM(md); }
bengali_leap_year(p1)
click to toggle source
static VALUE calendrical_bengali_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = bengali_leap_year(iy); return INT2BOOL(l); }
bengali_leap_year?(p1)
click to toggle source
static VALUE calendrical_bengali_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = bengali_leap_year(iy); return INT2BOOL(l); }
bengali_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_bengali_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 31); iy = NUM2INT(y); a = bengali_to_rd(iy, im, imd); rd_to_bengali(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
coptic_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_coptic_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 13); iy = NUM2INT(y); md = coptic_last_day_of_month(iy, im); return INT2NUM(md); }
coptic_leap_year(p1)
click to toggle source
static VALUE calendrical_coptic_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = coptic_leap_year(iy); return INT2BOOL(l); }
coptic_leap_year?(p1)
click to toggle source
static VALUE calendrical_coptic_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = coptic_leap_year(iy); return INT2BOOL(l); }
coptic_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_coptic_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 13); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 30); iy = NUM2INT(y); a = coptic_to_rd(iy, im, imd); rd_to_coptic(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
easter(p1)
click to toggle source
static VALUE calendrical_easter(VALUE obj, VALUE y) { int iy, a; iy = NUM2INT(y); a = easter(iy); return INT2NUM(a); }
ethiopian_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_ethiopian_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 13); iy = NUM2INT(y); md = ethiopian_last_day_of_month(iy, im); return INT2NUM(md); }
ethiopian_leap_year(p1)
click to toggle source
static VALUE calendrical_ethiopian_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = ethiopian_leap_year(iy); return INT2BOOL(l); }
ethiopian_leap_year?(p1)
click to toggle source
static VALUE calendrical_ethiopian_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = ethiopian_leap_year(iy); return INT2BOOL(l); }
ethiopian_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_ethiopian_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 13); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 30); iy = NUM2INT(y); a = ethiopian_to_rd(iy, im, imd); rd_to_ethiopian(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
french_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_french_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 13); iy = NUM2INT(y); md = french_last_day_of_month(iy, im); return INT2NUM(md); }
french_leap_year(p1)
click to toggle source
static VALUE calendrical_french_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = french_leap_year(iy); return INT2BOOL(l); }
french_leap_year?(p1)
click to toggle source
static VALUE calendrical_french_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = french_leap_year(iy); return INT2BOOL(l); }
french_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_french_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 13); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 30); iy = NUM2INT(y); a = french_to_rd(iy, im, imd); rd_to_french(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
gregorian_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_gregorian_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); iy = NUM2INT(y); md = gregorian_last_day_of_month(iy, im); return INT2NUM(md); }
gregorian_leap_year(p1)
click to toggle source
static VALUE calendrical_gregorian_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = gregorian_leap_year(iy); return INT2BOOL(l); }
gregorian_leap_year?(p1)
click to toggle source
static VALUE calendrical_gregorian_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = gregorian_leap_year(iy); return INT2BOOL(l); }
gregorian_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_gregorian_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 31); iy = NUM2INT(y); a = gregorian_to_rd(iy, im, imd); rd_to_gregorian(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
hebrew_calendar_elapsed_days(p1)
click to toggle source
static VALUE calendrical_hebrew_calendar_elapsed_days(VALUE obj, VALUE y) { int iy, d; iy = NUM2INT(y); d = hebrew_calendar_elapsed_days(iy); return INT2NUM(d); }
hebrew_days_in_year(p1)
click to toggle source
static VALUE calendrical_hebrew_days_in_year(VALUE obj, VALUE y) { int iy, d; iy = NUM2INT(y); d = hebrew_days_in_year(iy); return INT2NUM(d); }
hebrew_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_hebrew_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 13); iy = NUM2INT(y); md = hebrew_last_day_of_month(iy, im); return INT2NUM(md); }
hebrew_last_month_of_year(p1)
click to toggle source
static VALUE calendrical_hebrew_last_month_of_year(VALUE obj, VALUE y) { int iy, m; iy = NUM2INT(y); m = hebrew_last_month_of_year(iy); return INT2NUM(m); }
hebrew_leap_year(p1)
click to toggle source
static VALUE calendrical_hebrew_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = hebrew_leap_year(iy); return INT2BOOL(l); }
hebrew_leap_year?(p1)
click to toggle source
static VALUE calendrical_hebrew_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = hebrew_leap_year(iy); return INT2BOOL(l); }
hebrew_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_hebrew_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 13); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 30); iy = NUM2INT(y); a = hebrew_to_rd(iy, im, imd); rd_to_hebrew(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
indian_national_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_indian_national_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); iy = NUM2INT(y); md = indian_national_last_day_of_month(iy, im); return INT2NUM(md); }
indian_national_leap_year(p1)
click to toggle source
static VALUE calendrical_indian_national_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = indian_national_leap_year(iy); return INT2BOOL(l); }
indian_national_leap_year?(p1)
click to toggle source
static VALUE calendrical_indian_national_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = indian_national_leap_year(iy); return INT2BOOL(l); }
indian_national_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_indian_national_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 31); iy = NUM2INT(y); a = indian_national_to_rd(iy, im, imd); rd_to_indian_national(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
islamic_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_islamic_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); iy = NUM2INT(y); md = islamic_last_day_of_month(iy, im); return INT2NUM(md); }
islamic_leap_year(p1)
click to toggle source
static VALUE calendrical_islamic_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = islamic_leap_year(iy); return INT2BOOL(l); }
islamic_leap_year?(p1)
click to toggle source
static VALUE calendrical_islamic_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = islamic_leap_year(iy); return INT2BOOL(l); }
islamic_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_islamic_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 30); iy = NUM2INT(y); a = islamic_to_rd(iy, im, imd); rd_to_islamic(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
iso_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_iso_to_rd(VALUE obj, VALUE y, VALUE w, VALUE wd) { int iy, iw, iwd, a, iy2, iw2, iwd2; iw = NUM2INT(w); CHECK_DOMAIN2(iw, 1, 53); iwd = NUM2INT(wd); CHECK_DOMAIN2(iwd, 1, 7); iy = NUM2INT(y); a = iso_to_rd(iy, iw, iwd); rd_to_iso(a, &iy2, &iw2, &iwd2); if (iw != iw2 || iwd != iwd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
jalali_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_jalali_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); iy = NUM2INT(y); md = jalali_last_day_of_month(iy, im); return INT2NUM(md); }
jalali_leap_year(p1)
click to toggle source
static VALUE calendrical_jalali_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = jalali_leap_year(iy); return INT2BOOL(l); }
jalali_leap_year?(p1)
click to toggle source
static VALUE calendrical_jalali_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = jalali_leap_year(iy); return INT2BOOL(l); }
jalali_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_jalali_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 31); iy = NUM2INT(y); a = jalali_to_rd(iy, im, imd); rd_to_jalali(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
jd_to_mjd(p1)
click to toggle source
static VALUE calendrical_jd_to_mjd(VALUE obj, VALUE j) { int ij, m; ij = NUM2INT(j); m = jd_to_mjd(ij); return INT2NUM(m); }
jd_to_rd(p1)
click to toggle source
static VALUE calendrical_jd_to_rd(VALUE obj, VALUE j) { int ij, a; ij = NUM2INT(j); a = jd_to_rd(ij); return INT2NUM(a); }
julian_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_julian_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); iy = NUM2INT(y); md = julian_last_day_of_month(iy, im); return INT2NUM(md); }
julian_leap_year(p1)
click to toggle source
static VALUE calendrical_julian_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = julian_leap_year(iy); return INT2BOOL(l); }
julian_leap_year?(p1)
click to toggle source
static VALUE calendrical_julian_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = julian_leap_year(iy); return INT2BOOL(l); }
julian_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_julian_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 31); iy = NUM2INT(y); a = julian_to_rd(iy, im, imd); rd_to_julian(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
kday_on_or_before(p1, p2)
click to toggle source
static VALUE calendrical_kday_on_or_before(VALUE obj, VALUE a, VALUE k) { int ia, ik, b; ia = NUM2INT(a); ik = NUM2INT(k); CHECK_DOMAIN2(ik, 0, 6); b = kday_on_or_before(ia, NUM2INT(k)); return INT2NUM(b); }
kyureki_to_rd(p1, p2, p3, p4)
click to toggle source
static VALUE calendrical_kyureki_to_rd(VALUE obj, VALUE y, VALUE m, VALUE l, VALUE md) { int j, a; QDATE q, q2; q.j = 0; q.y = NUM2INT(y); q.yd = 0; q.m = NUM2INT(m); CHECK_DOMAIN2(q.m, 1, 12); q.md = NUM2INT(md); CHECK_DOMAIN2(q.md, 1, 30); q.wd = 0; q.leap = BOOL2INT(l); j = rqref(&q); if (j == 0) rb_raise(rb_eArgError, "invalid date"); a = jd_to_rd(j); qref(j, &q2); if (q.y != q2.y || q.m != q2.m || q.md != q2.md || q.leap != q2.leap) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
ld_to_rd(p1)
click to toggle source
static VALUE calendrical_ld_to_rd(VALUE obj, VALUE l) { int il, a; il = NUM2INT(l); a = ld_to_rd(il); return INT2NUM(a); }
long_heshvan(p1)
click to toggle source
static VALUE calendrical_long_heshvan(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = long_heshvan(iy); return INT2BOOL(l); }
long_heshvan?(p1)
click to toggle source
static VALUE calendrical_long_heshvan(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = long_heshvan(iy); return INT2BOOL(l); }
lunar_longitude(p1)
click to toggle source
static VALUE calendrical_lunar_longitude(VALUE obj, VALUE d) { double l; l = lunar_longitude(getfloat(d)); return rb_float_new(l); }
lunar_phase(p1)
click to toggle source
static VALUE calendrical_lunar_phase(VALUE obj, VALUE d) { double p; p = lunar_phase(getfloat(d)); return rb_float_new(p); }
mayan_haab_difference(p1, p2, p3, p4)
click to toggle source
static VALUE calendrical_mayan_haab_difference (VALUE obj, VALUE m1, VALUE md1, VALUE m2, VALUE md2) { int imd1, im1, imd2, im2, d; im1 = NUM2INT(m1); CHECK_DOMAIN2(im1, 1, 19); imd1 = NUM2INT(md1); CHECK_DOMAIN2(imd1, 0, (im1 == 19) ? 4 : 19); im2 = NUM2INT(m2); CHECK_DOMAIN2(im2, 1, 19); imd2 = NUM2INT(md2); CHECK_DOMAIN2(imd2, 0, (im2 == 19) ? 4 : 19); d = mayan_haab_difference(im1, imd1, im2, imd2); return INT2NUM(d); }
mayan_haab_on_or_before(p1, p2, p3)
click to toggle source
static VALUE calendrical_mayan_haab_on_or_before(VALUE obj, VALUE m, VALUE md, VALUE a) { int imd, im, ia, d; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 19); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 0, (im == 19) ? 4 : 19); ia = NUM2INT(a); d = mayan_haab_on_or_before(im, imd, ia); return INT2NUM(d); }
mayan_haab_tzolkin_on_or_before(p1, p2, p3, p4, p5)
click to toggle source
static VALUE calendrical_mayan_haab_tzolkin_on_or_before (VALUE obj, VALUE m, VALUE md, VALUE na, VALUE nu, VALUE a) { int imd, im, inu, ina, ia, d; imd = NUM2INT(md); CHECK_DOMAIN2(imd, 0, 19); im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 19); inu = NUM2INT(nu); CHECK_DOMAIN2(inu, 1, 13); ina = NUM2INT(na); CHECK_DOMAIN2(ina, 1, 20); ia = NUM2INT(a); d = mayan_haab_tzolkin_on_or_before(im, imd, ina, inu, ia); return INT2NUM(d); }
mayan_long_count_to_rd(p1, p2, p3, p4, p5)
click to toggle source
static VALUE calendrical_mayan_long_count_to_rd (VALUE obj, VALUE bt, VALUE kt, VALUE t, VALUE u, VALUE k) { int ibt, ikt, it, iu, ik, a, ibt2, ikt2, it2, iu2, ik2; ibt = NUM2INT(bt); ikt = NUM2INT(kt); CHECK_DOMAIN2(ikt, 0, 19); it = NUM2INT(t); CHECK_DOMAIN2(it, 0, 19); iu = NUM2INT(u); CHECK_DOMAIN2(iu, 0, 17); ik = NUM2INT(k); CHECK_DOMAIN2(ik, 0, 19); a = mayan_long_count_to_rd(ibt, ikt, it, iu, ik); rd_to_mayan_long_count(a, &ibt2, &ikt2, &it2, &iu2, &ik2); if (ibt != ibt2 || ikt != ikt2 || it != it2 || iu != iu2 || ik != ik2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
mayan_tzolkin_difference(p1, p2, p3, p4)
click to toggle source
static VALUE calendrical_mayan_tzolkin_difference (VALUE obj, VALUE na1, VALUE nu1, VALUE na2, VALUE nu2) { int inu1, ina1, inu2, ina2, d; inu1 = NUM2INT(nu1); CHECK_DOMAIN2(inu1, 1, 13); ina1 = NUM2INT(na1); CHECK_DOMAIN2(ina1, 1, 20); inu2 = NUM2INT(nu2); CHECK_DOMAIN2(inu2, 1, 13); ina2 = NUM2INT(na2); CHECK_DOMAIN2(ina2, 1, 20); d = mayan_tzolkin_difference(ina1, inu1, ina2, inu2); return INT2NUM(d); }
mayan_tzolkin_on_or_before(p1, p2, p3)
click to toggle source
static VALUE calendrical_mayan_tzolkin_on_or_before(VALUE obj, VALUE na, VALUE nu, VALUE a) { int inu, ina, ia, d; inu = NUM2INT(nu); CHECK_DOMAIN2(inu, 1, 13); ina = NUM2INT(na); CHECK_DOMAIN2(ina, 1, 20); ia = NUM2INT(a); d = mayan_tzolkin_on_or_before(ina, inu, ia); return INT2NUM(d); }
mjd_to_jd(p1)
click to toggle source
static VALUE calendrical_mjd_to_jd(VALUE obj, VALUE m) { int im, j; im = NUM2INT(m); j = mjd_to_jd(im); return INT2NUM(j); }
mjd_to_rd(p1)
click to toggle source
static VALUE calendrical_mjd_to_rd(VALUE obj, VALUE m) { int im, a; im = NUM2INT(m); a = mjd_to_rd(im); return INT2NUM(a); }
nanakshahi_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_nanakshahi_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); iy = NUM2INT(y); md = nanakshahi_last_day_of_month(iy, im); return INT2NUM(md); }
nanakshahi_leap_year(p1)
click to toggle source
static VALUE calendrical_nanakshahi_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = nanakshahi_leap_year(iy); return INT2BOOL(l); }
nanakshahi_leap_year?(p1)
click to toggle source
static VALUE calendrical_nanakshahi_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = nanakshahi_leap_year(iy); return INT2BOOL(l); }
nanakshahi_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_nanakshahi_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 31); iy = NUM2INT(y); a = nanakshahi_to_rd(iy, im, imd); rd_to_nanakshahi(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
new_moon(p1)
click to toggle source
static VALUE calendrical_new_moon(VALUE obj, VALUE d) { double n; n = new_moon(getfloat(d)); return rb_float_new(n); }
nicaean_rule_easter(p1)
click to toggle source
static VALUE calendrical_nicaean_rule_easter(VALUE obj, VALUE y) { int iy, a; iy = NUM2INT(y); a = nicaean_rule_easter(iy); return INT2NUM(a); }
nth_kday(p1, p2, p3, p4)
click to toggle source
static VALUE calendrical_nth_kday(VALUE obj, VALUE y, VALUE m, VALUE n, VALUE k) { int iy, im, in, ik, b; in = NUM2INT(n); if (in < -5 || in == 0 || in > 5) rb_raise(rb_eArgError, "out of range"); ik = NUM2INT(k); CHECK_DOMAIN2(ik, 0, 6); im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); iy = NUM2INT(y); b = nth_kday(iy, im, in, ik); return INT2NUM(b); }
old_hindu_lunar_precedes(p1, p2, p3, p4, p5, p6, p7, p8)
click to toggle source
static VALUE calendrical_old_hindu_lunar_precedes (VALUE obj, VALUE y1, VALUE m1, VALUE l1, VALUE md1, VALUE y2, VALUE m2, VALUE l2, VALUE md2) { int iy1, im1, il1, imd1, iy2, im2, il2, imd2, d; im1 = NUM2INT(m1); CHECK_DOMAIN2(im1, 1, 12); il1 = BOOL2INT(l1); imd1 = NUM2INT(md1); CHECK_DOMAIN2(imd1, 1, 30); iy1 = NUM2INT(y1); im2 = NUM2INT(m2); CHECK_DOMAIN2(im2, 1, 12); il2 = BOOL2INT(l2); imd2 = NUM2INT(md2); CHECK_DOMAIN2(imd2, 1, 30); iy2 = NUM2INT(y2); d = old_hindu_lunar_precedes(iy1, im1, il1, imd1, iy2, im2, il2, imd2); return INT2BOOL(d); }
old_hindu_lunar_to_rd(p1, p2, p3, p4)
click to toggle source
static VALUE calendrical_old_hindu_lunar_to_rd (VALUE obj, VALUE y, VALUE m, VALUE l, VALUE md) { int iy, im, il, imd, a, iy2, im2, il2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); il = BOOL2INT(l); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 30); iy = NUM2INT(y); a = old_hindu_lunar_to_rd(iy, im, il, imd); rd_to_old_hindu_lunar(a, &iy2, &im2, &il2, &imd2); if (im != im2 || il != il2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
old_hindu_solar_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_old_hindu_solar_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 31); iy = NUM2INT(y); a = old_hindu_solar_to_rd(iy, im, imd); rd_to_old_hindu_solar(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
ordinal_to_rd(p1, p2)
click to toggle source
static VALUE calendrical_ordinal_to_rd(VALUE obj, VALUE y, VALUE yd) { int iy, iyd, a, iy2, iyd2; iyd = NUM2INT(yd); CHECK_DOMAIN2(iyd, 1, 366); iy = NUM2INT(y); a = ordinal_to_rd(iy, iyd); rd_to_ordinal(a, &iy2, &iyd2); if (iyd != iyd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
rd_to_bahai(p1)
click to toggle source
static VALUE calendrical_rd_to_bahai(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_bahai(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_bengali(p1)
click to toggle source
static VALUE calendrical_rd_to_bengali(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_bengali(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_coptic(p1)
click to toggle source
static VALUE calendrical_rd_to_coptic(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_coptic(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_day_of_week(p1)
click to toggle source
static VALUE calendrical_rd_to_day_of_week(VALUE obj, VALUE a) { int ia, w; ia = NUM2INT(a); w = rd_to_day_of_week(ia); return INT2NUM(w); }
rd_to_ethiopian(p1)
click to toggle source
static VALUE calendrical_rd_to_ethiopian(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_ethiopian(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_french(p1)
click to toggle source
static VALUE calendrical_rd_to_french(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_french(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_gregorian(p1)
click to toggle source
static VALUE calendrical_rd_to_gregorian(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_gregorian(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_hebrew(p1)
click to toggle source
static VALUE calendrical_rd_to_hebrew(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_hebrew(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_indian_national(p1)
click to toggle source
static VALUE calendrical_rd_to_indian_national(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_indian_national(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_islamic(p1)
click to toggle source
static VALUE calendrical_rd_to_islamic(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_islamic(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_iso(p1)
click to toggle source
static VALUE calendrical_rd_to_iso(VALUE obj, VALUE a) { int ia, y, w, wd; ia = NUM2INT(a); rd_to_iso(ia, &y, &w, &wd); return rb_ary_new3(3, INT2NUM(y), INT2NUM(w), INT2NUM(wd)); }
rd_to_jalali(p1)
click to toggle source
static VALUE calendrical_rd_to_jalali(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_jalali(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_jd(p1)
click to toggle source
static VALUE calendrical_rd_to_jd(VALUE obj, VALUE a) { int ia, j; ia = NUM2INT(a); j = rd_to_jd(ia); return INT2NUM(j); }
rd_to_julian(p1)
click to toggle source
static VALUE calendrical_rd_to_julian(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_julian(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_kyureki(p1)
click to toggle source
static VALUE calendrical_rd_to_kyureki(VALUE obj, VALUE a) { int ia, j; QDATE q; ia = NUM2INT(a); CHECK_DOMAIN2(ia, 162193, 767009); j = rd_to_jd(ia); qref(j, &q); if (q.j == 0) rb_raise(rb_eArgError, "invalid date"); return rb_ary_new3 (4, INT2NUM(q.y), INT2NUM(q.m), INT2BOOL(q.leap), INT2NUM(q.md)); }
rd_to_kyureki_day_of_week(p1)
click to toggle source
static VALUE calendrical_rd_to_kyureki_day_of_week(VALUE obj, VALUE a) { int ia, j; QDATE q; ia = NUM2INT(a); j = rd_to_jd(ia); qref(j, &q); if (q.j == 0) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(q.wd); }
rd_to_ld(p1)
click to toggle source
static VALUE calendrical_rd_to_ld(VALUE obj, VALUE a) { int ia, l; ia = NUM2INT(a); l = rd_to_ld(ia); return INT2NUM(l); }
rd_to_mayan_haab(p1)
click to toggle source
static VALUE calendrical_rd_to_mayan_haab(VALUE obj, VALUE a) { int ia, md, m; ia = NUM2INT(a); rd_to_mayan_haab(ia, &m, &md); return rb_ary_new3(2, INT2NUM(m), INT2NUM(md)); }
rd_to_mayan_long_count(p1)
click to toggle source
static VALUE calendrical_rd_to_mayan_long_count(VALUE obj, VALUE a) { int ia, bt, kt, t, u, k; ia = NUM2INT(a); rd_to_mayan_long_count(ia, &bt, &kt, &t, &u, &k); return rb_ary_new3 (5, INT2NUM(bt), INT2NUM(kt), INT2NUM(t), INT2NUM(u), INT2NUM(k)); }
rd_to_mayan_tzolkin(p1)
click to toggle source
static VALUE calendrical_rd_to_mayan_tzolkin(VALUE obj, VALUE a) { int ia, nu, na; ia = NUM2INT(a); rd_to_mayan_tzolkin(ia, &na, &nu); return rb_ary_new3(2, INT2NUM(na), INT2NUM(nu)); }
rd_to_mjd(p1)
click to toggle source
static VALUE calendrical_rd_to_mjd(VALUE obj, VALUE a) { int ia, m; ia = NUM2INT(a); m = rd_to_mjd(ia); return INT2NUM(m); }
rd_to_nanakshahi(p1)
click to toggle source
static VALUE calendrical_rd_to_nanakshahi(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_nanakshahi(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_old_hindu_lunar(p1)
click to toggle source
static VALUE calendrical_rd_to_old_hindu_lunar(VALUE obj, VALUE a) { int ia, y, m, l, md; ia = NUM2INT(a); rd_to_old_hindu_lunar(ia, &y, &m, &l, &md); return rb_ary_new3(4, INT2NUM(y), INT2NUM(m), INT2BOOL(l), INT2NUM(md)); }
rd_to_old_hindu_solar(p1)
click to toggle source
static VALUE calendrical_rd_to_old_hindu_solar(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_old_hindu_solar(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_ordinal(p1)
click to toggle source
static VALUE calendrical_rd_to_ordinal(VALUE obj, VALUE a) { int ia, y, yd; ia = NUM2INT(a); rd_to_ordinal(ia, &y, &yd); return rb_ary_new3(2, INT2NUM(y), INT2NUM(yd)); }
rd_to_week_date(p1)
click to toggle source
static VALUE calendrical_rd_to_iso(VALUE obj, VALUE a) { int ia, y, w, wd; ia = NUM2INT(a); rd_to_iso(ia, &y, &w, &wd); return rb_ary_new3(3, INT2NUM(y), INT2NUM(w), INT2NUM(wd)); }
rd_to_world(p1)
click to toggle source
static VALUE calendrical_rd_to_world(VALUE obj, VALUE a) { int ia, y, m, md; ia = NUM2INT(a); rd_to_world(ia, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
rd_to_world_day_of_week(p1)
click to toggle source
static VALUE calendrical_rd_to_world_day_of_week(VALUE obj, VALUE a) { int ia, w; ia = NUM2INT(a); w = rd_to_world_day_of_week(ia); return INT2NUM(w); }
short_kislev(p1)
click to toggle source
static VALUE calendrical_short_kislev(VALUE obj, VALUE y) { int iy, s; iy = NUM2INT(y); s = short_kislev(iy); return INT2BOOL(s); }
short_kislev?(p1)
click to toggle source
static VALUE calendrical_short_kislev(VALUE obj, VALUE y) { int iy, s; iy = NUM2INT(y); s = short_kislev(iy); return INT2BOOL(s); }
solar_longitude(p1)
click to toggle source
static VALUE calendrical_solar_longitude(VALUE obj, VALUE d) { double l; l = solar_longitude(getfloat(d)); return rb_float_new(l); }
week_date_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_iso_to_rd(VALUE obj, VALUE y, VALUE w, VALUE wd) { int iy, iw, iwd, a, iy2, iw2, iwd2; iw = NUM2INT(w); CHECK_DOMAIN2(iw, 1, 53); iwd = NUM2INT(wd); CHECK_DOMAIN2(iwd, 1, 7); iy = NUM2INT(y); a = iso_to_rd(iy, iw, iwd); rd_to_iso(a, &iy2, &iw2, &iwd2); if (iw != iw2 || iwd != iwd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
world_last_day_of_month(p1, p2)
click to toggle source
static VALUE calendrical_world_last_day_of_month(VALUE obj, VALUE y, VALUE m) { int iy, im, md; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); iy = NUM2INT(y); md = world_last_day_of_month(iy, im); return INT2NUM(md); }
world_leap_year(p1)
click to toggle source
static VALUE calendrical_world_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = world_leap_year(iy); return INT2BOOL(l); }
world_leap_year?(p1)
click to toggle source
static VALUE calendrical_world_leap_year(VALUE obj, VALUE y) { int iy, l; iy = NUM2INT(y); l = world_leap_year(iy); return INT2BOOL(l); }
world_to_rd(p1, p2, p3)
click to toggle source
static VALUE calendrical_world_to_rd(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, a, iy2, im2, imd2; im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 31); iy = NUM2INT(y); a = world_to_rd(iy, im, imd); rd_to_world(a, &iy2, &im2, &imd2); if (im != im2 || imd != imd2 || iy != iy2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(a); }
zodiac(p1)
click to toggle source
static VALUE calendrical_zodiac(VALUE obj, VALUE d) { double l; l = zodiac(getfloat(d)); return rb_float_new(l); }