📄 ut8_time.c
字号:
/***************************************************************************
** File name : ut8_time.c
** Author : x.cheng
** Create date :
**
** Comment:
** function for time...
**
** Revisions:
** $Log: ut8_time.c,v $
** Revision 1.1.1.1 2005/07/27 06:53:15 x.cheng
** add into repositories
**
**
***************************************************************************/
#include "const.h"
#include "type.h"
#include "stdarg.h"
#include "..\..\Inc\time.h"
/************************************************************
*************************************************************
** Function Name: ulSecondFrom1970010100
** Author: x.cheng
**
** Comment:
** 计算从1970年01月01日00时到开机当日经过的秒数,作为
** 开机时间
**
** List of parameters:
** stTime - ts_TIME, 存放当前时间的结构体变量
**
** Return value:
** unsigned long - 秒数
**
** Revisions:
**
*************************************************************
*************************************************************/
#define MINUTE 60 /*sec per minutes*/
#define HOUR (60*MINUTE) /*sec per hour*/
#define DAY (24*HOUR) /*sec per day*/
#define YEAR (365*DAY) /*sec per year*/
static int saiMonth[13] = {
0,
0, /* 1月 */
DAY * (31),
DAY * (31 + 29),
DAY * (31 + 29 + 31),
DAY * (31 + 29 + 31 + 30),
DAY * (31 + 29 + 31 + 30 + 31),
DAY * (31 + 29 + 31 + 30 + 31 + 30),
DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31),
DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31),
DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30),
DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31),
DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30),
};
unsigned long ulSecondFrom1970010100(ts_TIME *pstTime)
{
unsigned long ulSeconds;
int iYears;
iYears = 99+1+pstTime->iYear - 70; /*1970到现在的年数, 解决千年虫问题*/
/* your see? 1970 isn't a leap year */
/*:-) magic offsets (y+1) needed to get leap years right*/
ulSeconds = YEAR*iYears + DAY * ( (iYears+1)/4 ); /*这些年经过的秒数*/
ulSeconds += saiMonth[pstTime->iMon]; /*再加上当年到当月的秒数*/
/* and (y+2) hear, if it wasn't a leap year, we have to adjust */
if (pstTime->iMon > 2 && ((iYears + 2) %4))
ulSeconds -= DAY; /*减去一天的秒数*/
ulSeconds += DAY * (pstTime->iDay -1); /*本月过去的天数*/
ulSeconds += HOUR * (pstTime->iHour);
ulSeconds += MINUTE * (pstTime->iMin);
ulSeconds += (pstTime->iSec);
return ulSeconds;
}
/************************************************************
*************************************************************
** Function Name: vGetCurrentTime
** Author: x.cheng
**
** Comment:
** 取得当前时间(操作系统的)
**
** List of parameters:
** pstCurTime - ts_TIME*, 存放当前时间的结构体地址
**
** Return value:
** no
**
** Revisions:
**
*************************************************************
*************************************************************/
void vGetCurrentTime(ts_TIME *pstCurTime)
{
pstCurTime = (ts_TIME *)0l; /* dummy function, avoid warning */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -