Esempio n. 1
0
RSExport void RSCalendarSetGregorianStartDate(RSCalendarRef calendar, RSDateRef date) {
    RS_OBJC_FUNCDISPATCHV(RSCalendarGetTypeID(), void, calendar, _setGregorianStartDate:date);
    __RSGenericValidInstance(calendar, RSCalendarGetTypeID());
    if (date) __RSGenericValidInstance(date, RSDateGetTypeID());
    if (!calendar->_cal) __RSCalendarSetupCal(calendar);
    if (!calendar->_cal) return;
    if (!date) {
        UErrorCode status = U_ZERO_ERROR;
        UCalendar *cal = __RSCalendarCreateUCalendar(calendar->_identifier, calendar->_tz);
        UDate udate = cal ? ucal_getGregorianChange(cal, &status) : 0;
        if (cal && U_SUCCESS(status)) {
            status = U_ZERO_ERROR;
            if (calendar->_cal) ucal_setGregorianChange(calendar->_cal, udate, &status);
        }
        if (cal) ucal_close(cal);
    } else {
        RSAbsoluteTime at = RSDateGetAbsoluteTime(date);
        UDate udate = (at + RSAbsoluteTimeIntervalSince1970) * 1000.0;
        UErrorCode status = U_ZERO_ERROR;
        if (calendar->_cal) ucal_setGregorianChange(calendar->_cal, udate, &status);
    }
}
Esempio n. 2
0
RSExport RSUInteger RSDateGetDayOfWeek(RSDateRef date)
{
    __RSDateAvailable(date);
    RSGregorianDate gd = RSAbsoluteTimeGetGregorianDate(RSDateGetAbsoluteTime(date), nil);
	return __RSDateGetDayOfWeek(gd.year, gd.month, gd.day);
}
Esempio n. 3
0
static  RSTypeRef __RSDateClassCopy(RSAllocatorRef allocator, RSTypeRef rs, BOOL mutableCopy)
{
    RSAbsoluteTime time = RSDateGetAbsoluteTime(rs);
    RSDateRef copy = RSDateCreate(allocator, time);
    return copy;
}