首页 > 技术文章 > 获取系统时间keil

Gustavo-G 2020-06-18 15:03 原文

使用 __DATE__ 和__TIME__宏定义在keil预编译时根据当前日期自动生成编译时间(做版本号时引用)。

#define YEAR ((((__DATE__ [7] - '0') * 10 + (__DATE__ [8] - '0')) * 10 + (__DATE__ [9] - '0')) * 10 + (__DATE__ [10] - '0'))

#define MONTH ( __DATE__ [2] == 'n' ? (__DATE__ [1] == 'a' ? 1 : 6) \
: __DATE__ [2] == 'b' ? 2 \
: __DATE__ [2] == 'r' ? (__DATE__ [0] == 'M' ? 3 : 4) \
: __DATE__ [2] == 'y' ? 5 \
: __DATE__ [2] == 'n' ? 6 \
: __DATE__ [2] == 'l' ? 7 \
: __DATE__ [2] == 'g' ? 8 \
: __DATE__ [2] == 'p' ? 9 \
: __DATE__ [2] == 't' ? 10 \
: __DATE__ [2] == 'v' ? 11 : 12)

#define DAY ((__DATE__ [4] == ' ' ? 0 : ((__DATE__ [4] - '0') * 10 )) + (__DATE__ [5] - '0'))

#define HOUR ((__TIME__ [0] == ' ' ? 0 : ((__TIME__ [0] - '0') * 10 )) + (__TIME__ [1] - '0'))

#define MINUTE ((__TIME__ [3] == ' ' ? 0 : ((__TIME__ [3] - '0') * 10 )) + (__TIME__ [4] - '0'))

#define SECOND ((__TIME__ [6] == ' ' ? 0 : ((__TIME__ [6] - '0') * 10 )) + (__TIME__ [7] - '0'))

#define DATE_INT (YEAR * 10000 + MONTH * 100 + DAY) 

#define TIME_INT (HOUR * 10000 + MINUTE * 100 + SECOND)

 //__DATE__ : XXX XX XXXX(Jul 11 2020)月日年

 //__TIME__ : XX:XX:XX(11:10:23)时分秒

定义完成后即可读取宏定义在需要的地方使用。

推荐阅读