예제 #1
0
/*
 * @return [DateTime] Ruby core lib DateTime
 */
static VALUE
rb_ct_date_time_to_datetime(VALUE self)
{
    VALUE parts;
    VALUE offset = INT2NUM(0);

    parts = RSEND(self, "unpack");

    return rb_funcall( RUBY_CLASS("DateTime"), rb_intern("new"), 7,
                       rb_ary_entry(parts, 0),
                       rb_ary_entry(parts, 1),
                       rb_ary_entry(parts, 2),
                       rb_ary_entry(parts, 3),
                       rb_ary_entry(parts, 4),
                       rb_ary_entry(parts, 5),
                       offset );
}
예제 #2
0
/*
 * Convert CT::Date to ruby Date
 */
static VALUE
rb_ct_date_to_date(VALUE self)
{
    ct_date *date;
    NINT y, m, d;
    CTDBRET rc;
    VALUE rb_date;

    GetCTDate(self, date);

    if ( ( rc = ctdbDateUnpack(date->value, &y, &m, &d) ) != CTDBRET_OK )
        rb_raise(cCTError, "[%d] ctdbDateUnpack failed.", rc);

    rb_date = rb_funcall(RUBY_CLASS("Date"), rb_intern("new"), 3, 
        INT2FIX(y), INT2FIX(m), INT2FIX(d));

    return rb_date;
}