bool DateInterval::setDateString(CStrRef date_string) { timelib_time *time; timelib_rel_time *di; timelib_error_container *errors = NULL; time = timelib_strtotime((char*)date_string.data(), date_string.size(), &errors, TimeZone::GetDatabase()); int error_count = errors->error_count; DateTime::setLastErrors(errors); if (error_count > 0) { timelib_time_dtor(time); return false; } else { di = timelib_rel_time_clone(&(time->relative)); timelib_time_dtor(time); m_di = DateIntervalPtr(di, dateinterval_deleter()); return true; } }
SmartPtr<DateInterval> DateInterval::cloneDateInterval() const { if (!m_di) return makeSmartPtr<DateInterval>(); return makeSmartPtr<DateInterval>(timelib_rel_time_clone(m_di.get())); }
SmartObject<DateInterval> DateInterval::cloneDateInterval() const { if (!m_di) return NEWOBJ(DateInterval)(); return NEWOBJ(DateInterval)(timelib_rel_time_clone(m_di.get())); }
req::ptr<DateInterval> DateInterval::cloneDateInterval() const { if (!m_di) return req::make<DateInterval>(); return req::make<DateInterval>(timelib_rel_time_clone(m_di.get())); }