calPeriod::ToIcalPeriod(struct icalperiodtype *icalp) { // makes no sense to create a duration without bath a start and end if (!mStart || !mEnd) { *icalp = icalperiodtype_null_period(); return; } mStart->ToIcalTime(&icalp->start); mEnd->ToIcalTime(&icalp->end); }
struct icaldatetimeperiodtype icalvalue_get_datetimeperiod(const icalvalue* impl) { struct icaldatetimeperiodtype dtp; icalerror_check_arg( (impl!=0),"value"); icalerror_check_value_type(value, ICAL_DATETIMEPERIOD_VALUE); if(impl->kind == ICAL_DATETIME_VALUE){ dtp.period = icalperiodtype_null_period(); dtp.time = impl->data.v_time; } else if(impl->kind == ICAL_PERIOD_VALUE) { dtp.period = impl->data.v_period; dtp.time = icaltime_null_time(); } else { dtp.period = icalperiodtype_null_period(); dtp.time = icaltime_null_time(); icalerror_set_errno(ICAL_BADARG_ERROR); } return dtp; }