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->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; } timelib_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_special_early(timelib_time* time) { if (time->relative.have_special_relative) { switch (time->relative.special.type) { case TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH: time->d = 1; time->m += time->relative.m; time->relative.m = 0; break; case TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH: time->d = 1; time->m += time->relative.m + 1; time->relative.m = 0; break; } } 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_special(timelib_time* time) { if (time->relative.have_special_relative) { switch (time->relative.special.type) { case TIMELIB_SPECIAL_WEEKDAY: do_adjust_special_weekday(time); break; } } timelib_do_normalize(time); memset(&(time->relative.special), 0, sizeof(time->relative.special)); }
static void do_adjust_relative(timelib_time* time) { if (time->have_weekday_relative) { do_adjust_for_weekday(time); } timelib_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; } timelib_do_normalize(time); memset(&(time->relative), 0, sizeof(time->relative)); time->have_relative = 0; }