Module: Sdn
- Defined in:
- ext/sdn/sdnmodule.c
Constant Summary collapse
- VERSION =
rb_obj_freeze(rb_str_new2("$Revision: 1.7 $"))
Class Method Summary collapse
- .DayOfWeek(sdn) ⇒ Object
- .FrenchToSdn(y, m, md) ⇒ Object
- .GregorianToSdn(y, m, md) ⇒ Object
- .JewishToSdn(y, m, md) ⇒ Object
- .JulianToSdn(y, m, md) ⇒ Object
- .SdnToFrench(sdn) ⇒ Object
- .SdnToGregorian(sdn) ⇒ Object
- .SdnToJewish(sdn) ⇒ Object
- .SdnToJulian(sdn) ⇒ Object
Class Method Details
.DayOfWeek(sdn) ⇒ Object
142 143 144 145 146 147 148 149 150 151 |
# File 'ext/sdn/sdnmodule.c', line 142
static VALUE
sdn_DayOfWeek(VALUE obj, VALUE sdn)
{
long isdn;
int wd;
isdn = NUM2LONG(sdn);
wd = DayOfWeek(isdn);
return INT2NUM(wd);
}
|
.FrenchToSdn(y, m, md) ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'ext/sdn/sdnmodule.c', line 125
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(y, m, md) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'ext/sdn/sdnmodule.c', line 41
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(y, m, md) ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'ext/sdn/sdnmodule.c', line 97
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(y, m, md) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'ext/sdn/sdnmodule.c', line 69
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(sdn) ⇒ Object
114 115 116 117 118 119 120 121 122 123 |
# File 'ext/sdn/sdnmodule.c', line 114
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(sdn) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'ext/sdn/sdnmodule.c', line 30
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(sdn) ⇒ Object
86 87 88 89 90 91 92 93 94 95 |
# File 'ext/sdn/sdnmodule.c', line 86
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(sdn) ⇒ Object
58 59 60 61 62 63 64 65 66 67 |
# File 'ext/sdn/sdnmodule.c', line 58
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));
}
|