Ejemplo n.º 1
0
void
add_weeks(ha_time_t * a_time, int extra)
{
    if (a_time->has->weeks == FALSE) {
        crm_trace("has->weeks == FALSE");
        return;
    }
    if (extra < 0) {
        sub_weeks(a_time, -extra);
    } else {
        do_add_field(a_time, weeks, extra, weeks_in_year(a_time->years), add_weekyears);
    }

    convert_from_weekdays(a_time);
}
Ejemplo n.º 2
0
void
add_yeardays(ha_time_t * a_time, int extra)
{
    if (a_time->has->yeardays == FALSE) {
        crm_trace("has->yeardays == FALSE");
        return;
    }
    if (extra < 0) {
        sub_yeardays(a_time, -extra);
    } else {
        do_add_field(a_time, yeardays, extra,
                     (is_leap_year(a_time->years) ? 366 : 365), add_ordinalyears);
    }

    convert_from_ordinal(a_time);
}
Ejemplo n.º 3
0
void
add_days(ha_time_t * a_time, int extra)
{
    if (a_time->has->days == FALSE) {
        crm_trace("has->days == FALSE");
        return;
    }
    if (extra < 0) {
        sub_days(a_time, -extra);
    } else {
        do_add_field(a_time, days, extra,
                     days_per_month(a_time->months, a_time->years), add_months);
    }

    convert_from_gregorian(a_time);
}
Ejemplo n.º 4
0
void
add_yeardays(ha_time_t * a_time, int extra)
{
    if (a_time->has->yeardays == FALSE) {
        crm_trace("has->yeardays == FALSE");
        return;
    }
    if (extra < 0) {
        sub_yeardays(a_time, -extra);
    } else {
        /* coverity[result_independent_of_operands] Not interesting */
        do_add_field(a_time, yeardays, extra,
                     (is_leap_year(a_time->years) ? 366 : 365), add_ordinalyears);
    }

    convert_from_ordinal(a_time);
}
Ejemplo n.º 5
0
void
add_months(ha_time_t * a_time, int extra)
{
    int max = 0;

    if (a_time->has->months == FALSE) {
        crm_trace("has->months == FALSE");
        return;
    }
    if (extra < 0) {
        sub_months(a_time, -extra);
    } else {
        do_add_field(a_time, months, extra, 12, add_years);
    }

    max = days_per_month(a_time->months, a_time->years);
    if (a_time->days > max) {
        a_time->days = max;
    }
    convert_from_gregorian(a_time);
}