⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 localtime.c

📁 标准c库代码,可以应用于各个系统提供了大量的基本函数
💻 C
字号:
/* * localtime.c * Original Author:	G. Haley * * Converts the calendar time pointed to by tim_p into a broken-down time * expressed as local time. Returns a pointer to a structure containing the * broken-down time. *//*FUNCTION<<localtime>>---convert time to local representationINDEX	localtimeANSI_SYNOPSIS	#include <time.h>	struct tm *localtime(time_t *<[timep]>);TRAD_SYNOPSIS	#include <time.h>	struct tm *localtime(<[timep]>)	time_t *<[timep]>;DESCRIPTION<<localtime>> converts the time at <[timep]> into local time, thenconverts its representation from the arithmetic representation to thetraditional representation defined by <<struct tm>>.<<localtime>> constructs the traditional time representation in staticstorage; each call to <<gmtime>> or <<localtime>> will overwrite theinformation generated by previous calls to either function.<<mktime>> is the inverse of <<localtime>>.RETURNSA pointer to the traditional time representation (<<struct tm>>).PORTABILITYANSI C requires <<localtime>>.<<localtime>> requires no supporting OS subroutines.*/#include <stdlib.h>#include <time.h>#define _SEC_IN_DAY 86400static _CONST int _DAYS_IN_MONTH[12] =  {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};#define _DAYS_IN_YEAR(year) (((year) % 4) ? 365 : 366)/* Shouldn't this appear in the reent struct? */ static struct tm tim_s;struct tm *_DEFUN (localtime, (tim_p),	_CONST time_t * tim_p){  ldiv_t res;  long days, hms;  int dim1;  /* compute days, hours, minutes & seconds */  res = ldiv ((long) *tim_p, _SEC_IN_DAY);  if (res.rem < 0)    {      days = res.quot - 1;      hms = res.rem + _SEC_IN_DAY;    }  else    {      days = res.quot;      hms = res.rem;    }  tim_s.tm_sec = hms % 60;  tim_s.tm_min = (hms /= 60) % 60;  tim_s.tm_hour = hms / 60;  /* compute day of week */  if ((tim_s.tm_wday = (days + 4) % 7) < 0)    tim_s.tm_wday += 7;  /* compute year & day of year */  if (days >= 0)    {      for (tim_s.tm_year = 70; days >= _DAYS_IN_YEAR (tim_s.tm_year);	   tim_s.tm_year++)	days -= _DAYS_IN_YEAR (tim_s.tm_year);    }  else    {      for (tim_s.tm_year = 70; days < 0; tim_s.tm_year--)	days += _DAYS_IN_YEAR (tim_s.tm_year);    }  tim_s.tm_yday = days;  /* compute month & day of month */  if (_DAYS_IN_YEAR (tim_s.tm_year) == 366)    dim1 = 29;  else    dim1 = 28;  for (tim_s.tm_mon = 0;       days >= _DAYS_IN_MONTH[tim_s.tm_mon];       tim_s.tm_mon++)    {      if (tim_s.tm_mon == 1)	{	  days -= dim1;	}      else	{	  days -= _DAYS_IN_MONTH[tim_s.tm_mon];	}    }  tim_s.tm_mday = days + 1;  /* set Daylight Saving Time flag */  tim_s.tm_isdst = -1;  return (&tim_s);}

⌨️ 快捷键说明

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