gmtime.c

来自「操作系统源代码」· C语言 代码 · 共 42 行

C
42
字号
/* * gmtime - convert the calendar time into broken down time *//* $Header: gmtime.c,v 1.4 91/04/22 13:20:27 ceriel Exp $ */#include	<time.h>#include	<limits.h>#include	"loc_time.h"struct tm *gmtime(register const time_t *timer){	static struct tm br_time;	register struct tm *timep = &br_time;	time_t time = *timer;	register unsigned long dayclock, dayno;	int year = EPOCH_YR;	dayclock = (unsigned long)time % SECS_DAY;	dayno = (unsigned long)time / SECS_DAY;	timep->tm_sec = dayclock % 60;	timep->tm_min = (dayclock % 3600) / 60;	timep->tm_hour = dayclock / 3600;	timep->tm_wday = (dayno + 4) % 7;	/* day 0 was a thursday */	while (dayno >= YEARSIZE(year)) {		dayno -= YEARSIZE(year);		year++;	}	timep->tm_year = year - YEAR0;	timep->tm_yday = dayno;	timep->tm_mon = 0;	while (dayno >= _ytab[LEAPYEAR(year)][timep->tm_mon]) {		dayno -= _ytab[LEAPYEAR(year)][timep->tm_mon];		timep->tm_mon++;	}	timep->tm_mday = dayno + 1;	timep->tm_isdst = 0;	return timep;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?