__DATE__ 和 __TIME__ 转换为秒数

来源:互联网 发布:飞秋软件 编辑:程序博客网 时间:2024/06/05 09:11

__DATE__ = "*** ** ****" 加上字符串结束符共计12个字节

__TIME__ = "**:**:**" 加上字符串结束符共计9个字节


#define MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n')
#define MONTH_IS_FEB (__DATE__[0] == 'F')
#define MONTH_IS_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r')
#define MONTH_IS_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p')
#define MONTH_IS_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y')
#define MONTH_IS_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n')
#define MONTH_IS_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l')
#define MONTH_IS_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u')
#define MONTH_IS_SEP (__DATE__[0] == 'S')
#define MONTH_IS_OCT (__DATE__[0] == 'O')
#define MONTH_IS_NOV (__DATE__[0] == 'N')
#define MONTH_IS_DEC (__DATE__[0] == 'D')


 int sum=0;
 int year = ((__DATE__[7]-'0')*1000 + (__DATE__[8]-'0')*100 + (__DATE__[9]-'0')*10 + (__DATE__[10]-'0'));
 int month = ((MONTH_IS_JAN) ? 1 :(MONTH_IS_FEB) ? 2 :(MONTH_IS_MAR) ? 3 :(MONTH_IS_APR) ? 4 :(MONTH_IS_MAY) ? 5 :(MONTH_IS_JUN) ? 6 :(MONTH_IS_JUL) ? 7 :\
              (MONTH_IS_AUG) ? 8 :(MONTH_IS_SEP) ? 9 :(MONTH_IS_OCT) ? 10 :(MONTH_IS_NOV) ? 11 :(MONTH_IS_DEC) ? 12 : 0);
 int day = (__DATE__[4]-'0')*10 + (__DATE__[5]-'0');
 int hour = ((__TIME__[0]-'0') * 10 + (__TIME__[1]-'0'));
 int min  = ((__TIME__[3]-'0' )* 10 + (__TIME__[4]-'0'));
 int sec  = ((__TIME__[6]-'0' )* 10 + (__TIME__[7]-'0'));
 //sum = sec + min*60 + hour*3600 + day*24*3600 + month*30*24*3600 + (year-2000)*12*30*24*3600;
 sum = sec + min*60 + hour*3600 + day*86400 + month*2592000 + (year-2000)*31104000;

原创粉丝点击