static void do_adjust_relative(timelib_time* time) { if (time->relative.have_weekday_relative) { do_adjust_for_weekday(time); } do_normalize(time); if (time->have_relative) { time->s += time->relative.s; time->i += time->relative.i; time->h += time->relative.h; time->d += time->relative.d; time->m += time->relative.m; time->y += time->relative.y; } switch (time->relative.first_last_day_of) { case 1: /* first */ time->d = 1; break; case 2: /* last */ time->d = 0; time->m++; break; } do_normalize(time); }
static void do_adjust_relative(timelib_time* time) { if (time->relative.have_weekday_relative) { do_adjust_for_weekday(time); } timelib_do_normalize(time); if (time->have_relative) { time->f += time->relative.f; time->s += time->relative.s; time->i += time->relative.i; time->h += time->relative.h; time->d += time->relative.d; time->m += time->relative.m; time->y += time->relative.y; } switch (time->relative.first_last_day_of) { case TIMELIB_SPECIAL_FIRST_DAY_OF_MONTH: /* first */ time->d = 1; break; case TIMELIB_SPECIAL_LAST_DAY_OF_MONTH: /* last */ time->d = 0; time->m++; break; } timelib_do_normalize(time); }
static void do_adjust_relative(timelib_time* time) { if (time->have_weekday_relative) { do_adjust_for_weekday(time); } do_normalize(time); if (time->have_relative) { time->s += time->relative.s; time->i += time->relative.i; time->h += time->relative.h; time->d += time->relative.d; time->m += time->relative.m; time->y += time->relative.y; } do_normalize(time); memset(&(time->relative), 0, sizeof(time->relative)); time->have_relative = 0; }