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); }
/* Month run */ int month_run(int key, mmask_t btn, int row, int col) { int days = 0, months = 0; switch (key) { case 'h': days = -1; break; case 'j': days = 7; break; case 'k': days = -7; break; case 'l': days = 1; break; case 'i': months = -1; break; case 'o': months = 1; break; } if (days || months) { add_days(&SEL.year, &SEL.month, &SEL.day, days); add_months(&SEL.year, &SEL.month, months); werase(win); month_draw(); wrefresh(win); } return days || months; }
inline Gregorian operator + (detail::packaged_month m) { return add_months(*this, m.nMonths_); }