module Sdn
Constants
- VERSION
Public Class Methods
DayOfWeek(p1)
click to toggle source
static VALUE sdn_DayOfWeek(VALUE obj, VALUE sdn) { long isdn; int wd; isdn = NUM2LONG(sdn); wd = DayOfWeek(isdn); return INT2NUM(wd); }
FrenchToSdn(p1, p2, p3)
click to toggle source
static VALUE sdn_FrenchToSdn(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, iy2, im2, imd2; long sdn; iy = NUM2INT(y); CHECK_DOMAIN(iy, 1); im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 13); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 30); sdn = FrenchToSdn(iy, im, imd); CHECK_RANGE(sdn, 1); SdnToFrench(sdn, &iy2, &im2, &imd2); if (iy != iy2 || im != im2 || imd != imd2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(sdn); }
GregorianToSdn(p1, p2, p3)
click to toggle source
static VALUE sdn_GregorianToSdn(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, iy2, im2, imd2; long sdn; iy = NUM2INT(y); CHECK_DOMAIN(iy, -4714); im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 31); sdn = GregorianToSdn(iy, im, imd); CHECK_RANGE(sdn, 1); SdnToGregorian(sdn, &iy2, &im2, &imd2); if (iy != iy2 || im != im2 || imd != imd2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(sdn); }
JewishToSdn(p1, p2, p3)
click to toggle source
static VALUE sdn_JewishToSdn(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, iy2, im2, imd2; long sdn; iy = NUM2INT(y); CHECK_DOMAIN(iy, 1); im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 13); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 30); sdn = JewishToSdn(iy, im, imd); CHECK_RANGE(sdn, 1); /* 347998 */ SdnToJewish(sdn, &iy2, &im2, &imd2); if (iy != iy2 || im != im2 || imd != imd2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(sdn); }
JulianToSdn(p1, p2, p3)
click to toggle source
static VALUE sdn_JulianToSdn(VALUE obj, VALUE y, VALUE m, VALUE md) { int iy, im, imd, iy2, im2, imd2; long sdn; iy = NUM2INT(y); CHECK_DOMAIN(iy, -4713); im = NUM2INT(m); CHECK_DOMAIN2(im, 1, 12); imd = NUM2INT(md); CHECK_DOMAIN2(imd, 1, 31); sdn = JulianToSdn(iy, im, imd); CHECK_RANGE(sdn, 1); SdnToJulian(sdn, &iy2, &im2, &imd2); if (iy != iy2 || im != im2 || imd != imd2) rb_raise(rb_eArgError, "invalid date"); return INT2NUM(sdn); }
SdnToFrench(p1)
click to toggle source
static VALUE sdn_SdnToFrench(VALUE obj, VALUE sdn) { int y, m, md; long isdn; isdn = NUM2LONG(sdn); CHECK_DOMAIN2(isdn, 2375840, 2380952); SdnToFrench(isdn, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
SdnToGregorian(p1)
click to toggle source
static VALUE sdn_SdnToGregorian(VALUE obj, VALUE sdn) { int y, m, md; long isdn; isdn = NUM2LONG(sdn); CHECK_DOMAIN(isdn, 1); SdnToGregorian(isdn, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
SdnToJewish(p1)
click to toggle source
static VALUE sdn_SdnToJewish(VALUE obj, VALUE sdn) { int y, m, md; long isdn; isdn = NUM2LONG(sdn); CHECK_DOMAIN(isdn, 347998); SdnToJewish(NUM2INT(sdn), &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }
SdnToJulian(p1)
click to toggle source
static VALUE sdn_SdnToJulian(VALUE obj, VALUE sdn) { int y, m, md; long isdn; isdn = NUM2LONG(sdn); CHECK_DOMAIN(isdn, 1); SdnToJulian(isdn, &y, &m, &md); return rb_ary_new3(3, INT2NUM(y), INT2NUM(m), INT2NUM(md)); }