void sub_months(ha_time_t * a_time, int extra) { if (a_time->has->months == FALSE) { crm_trace("has->months == FALSE"); return; } if (extra < 0) { add_months(a_time, -extra); } else { do_sub_field(a_time, months, extra, 12, sub_years); } convert_from_gregorian(a_time); }
void sub_weeks(ha_time_t * a_time, int extra) { if (a_time->has->weeks == FALSE) { crm_trace("has->weeks == FALSE"); return; } if (extra < 0) { add_weeks(a_time, -extra); } else { do_sub_field(a_time, weeks, extra, weeks_in_year(a_time->years), sub_weekyears); } convert_from_weekdays(a_time); }
void sub_weekdays(ha_time_t * a_time, int extra) { if (a_time->has->weekdays == FALSE) { crm_trace("has->weekdays == FALSE"); return; } crm_trace("Subtracting %d days from %.4d-%.2d-%.2d", extra, a_time->years, a_time->months, a_time->days); if (extra < 0) { add_weekdays(a_time, -extra); } else { do_sub_field(a_time, weekdays, extra, 7, sub_weeks); } convert_from_weekdays(a_time); }
void sub_yeardays(ha_time_t * a_time, int extra) { if (a_time->has->yeardays == FALSE) { crm_trace("has->yeardays == FALSE"); return; } crm_trace("Subtracting %d days from %.4d-%.3d", extra, a_time->years, a_time->yeardays); if (extra < 0) { add_yeardays(a_time, -extra); } else { do_sub_field(a_time, yeardays, extra, is_leap_year(a_time->years) ? 366 : 365, sub_ordinalyears); } convert_from_ordinal(a_time); }
void sub_days(ha_time_t * a_time, int extra) { if (a_time->has->days == FALSE) { crm_trace("has->days == FALSE"); return; } crm_trace("Subtracting %d days from %.4d-%.2d-%.2d", extra, a_time->years, a_time->months, a_time->days); if (extra < 0) { add_days(a_time, -extra); } else { do_sub_field(a_time, days, extra, days_per_month(a_time->months, a_time->years), sub_months); } convert_from_gregorian(a_time); }