__DATE__,__TIME__的含义及使用说明

–DATE––TIME–(注意是双下划线)
这是两个编译器宏定义,keil里有的,而不是C语言标准库固有的关键字,函数或宏定义。
用途:用于自动获取编译器编译时的当前时间。
–DATE– ------用于获取当前日期—格式— Jul 03 2020
–TIME– ------ 用于获取当前时间—格式—15:52:54
__DATE__,__TIME__的含义及使用说明_第1张图片
使用说明:
//获取系统时间
#define YEAR ((((DATE [7] - ‘0’) * 10 + (DATE [8] - ‘0’)) * 10 \

  • (DATE [9] - ‘0’)) * 10 + (DATE [10] - ‘0’))
#define MONTH ( DATE [2] == ‘c’ ? 12 \
DATE [2] == ‘n’ ? 1
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)

#define DAY ((DATE [4] == ’ ’ ? 0 : DATE [4] - ‘0’) * 10 \

  • (DATE [5] - ‘0’))

char pDest[20];
strcpy(pDest,_–DATE–,11);
if (strcmp(pDest, “Jan”) == 0) stTime.nMonth = 1;
else if (strcmp(pDest, “Feb”) == 0) stTime.nMonth = 2;
else if (strcmp(pDest, “Mar”) == 0) stTime.nMonth = 3;
else if (strcmp(pDest, “Apr”) == 0) stTime.nMonth = 4;
else if (strcmp(pDest, “May”) == 0) stTime.nMonth = 5;
else if (strcmp(pDest, “Jun”) == 0) stTime.nMonth = 6;
else if (strcmp(pDest, “Jul”) == 0) stTime.nMonth = 7;
else if (strcmp(pDest, “Aug”) == 0) stTime.nMonth = 8;
else if (strcmp(pDest, “Sep”) == 0) stTime.nMonth = 9;
else if (strcmp(pDest, “Oct”) == 0) stTime.nMonth = 10;
else if (strcmp(pDest, “Nov”) == 0) stTime.nMonth = 11;
else if (strcmp(pDest, “Dec”) == 0) stTime.nMonth = 12;
else stTime.nMonth = 1;

你可能感兴趣的:(C语言学习笔记)