C语言标准宏__DATE__格式化YY/MM/DD
时间: 2023-08-28 20:06:17 浏览: 271
C语言标准宏__DATE__的格式为"MMM DD YYYY",其中MMM表示英文月份的缩写,DD表示日期,YYYY表示年份。要将其格式化为YY/MM/DD,可以使用字符串操作函数将其分割并重新排列。下面是一种可能的实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char date[] = __DATE__; // 获取当前日期
char month[4], day[3], year[5];
sscanf(date, "%s %s %s", month, day, year); // 分割日期字符串
char formatted_date[9];
snprintf(formatted_date, 9, "%.2s/%.2s/%.2s", year + 2, month_to_num(month), day); // 重新排列并格式化日期
printf("%s\n", formatted_date); // 输出格式化后的日期
return 0;
}
// 将英文月份缩写转换为数字表示
char* month_to_num(char* month) {
if (strcmp(month, "Jan") == 0) return "01";
if (strcmp(month, "Feb") == 0) return "02";
if (strcmp(month, "Mar") == 0) return "03";
if (strcmp(month, "Apr") == 0) return "04";
if (strcmp(month, "May") == 0) return "05";
if (strcmp(month, "Jun") == 0) return "06";
if (strcmp(month, "Jul") == 0) return "07";
if (strcmp(month, "Aug") == 0) return "08";
if (strcmp(month, "Sep") == 0) return "09";
if (strcmp(month, "Oct") == 0) return "10";
if (strcmp(month, "Nov") == 0) return "11";
if (strcmp(month, "Dec") == 0) return "12";
return "00";
}
```
该程序输出的结果类似于"21/07/23",表示2021年7月23日。
阅读全文