void timelib_do_normalize(timelib_time* time) { if (time->f != TIMELIB_UNSET) do_range_limit_fraction(&time->f, &time->s); if (time->s != TIMELIB_UNSET) do_range_limit(0, 60, 60, &time->s, &time->i); if (time->s != TIMELIB_UNSET) do_range_limit(0, 60, 60, &time->i, &time->h); if (time->s != TIMELIB_UNSET) do_range_limit(0, 24, 24, &time->h, &time->d); do_range_limit(1, 13, 12, &time->m, &time->y); do {} while (do_range_limit_days(&time->y, &time->m, &time->d)); do_range_limit(1, 13, 12, &time->m, &time->y); }
void timelib_do_rel_normalize(timelib_time *base, timelib_rel_time *rt) { do_range_limit_fraction(&rt->us, &rt->s); do_range_limit(0, 60, 60, &rt->s, &rt->i); do_range_limit(0, 60, 60, &rt->i, &rt->h); do_range_limit(0, 24, 24, &rt->h, &rt->d); do_range_limit(0, 12, 12, &rt->m, &rt->y); do_range_limit_days_relative(&base->y, &base->m, &rt->y, &rt->m, &rt->d, rt->invert); do_range_limit(0, 12, 12, &rt->m, &rt->y); }
void timelib_do_normalize(timelib_time* time) { if (time->us != TIMELIB_UNSET) do_range_limit_fraction(&time->us, &time->s); if (time->s != TIMELIB_UNSET) do_range_limit(0, 60, 60, &time->s, &time->i); if (time->s != TIMELIB_UNSET) do_range_limit(0, 60, 60, &time->i, &time->h); if (time->s != TIMELIB_UNSET) do_range_limit(0, 24, 24, &time->h, &time->d); do_range_limit(1, 13, 12, &time->m, &time->y); /* Short cut if we're doing things against the Epoch */ if (time->y == 1970 && time->m == 1 && time->d != 1) { magic_date_calc(time); } do {} while (do_range_limit_days(&time->y, &time->m, &time->d)); do_range_limit(1, 13, 12, &time->m, &time->y); }