/* This is done in three separate functions so that the most expensive calculations are done last, in case a "simple match" can be found earlier.  */
static unsigned int localtime_1(struct xtm *r, time_t time)
/* This is done in three separate functions so that the most expensive calculations are done last, in case a "simple match" can be found earlier.  */
static unsigned int localtime_1(struct xtm *r, time_t time)
{
	unsigned int v, w;
	v         = time % 86400;
	r->second = v % 60;
	w         = v / 60;
	r->minute = w % 60;
	r->hour   = w / 60;
	return v;
}