使用 __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)时分秒
定义完成后即可读取宏定义在需要的地方使用。