Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
0
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);
}