某年某月的日历c语言
时间: 2024-11-01 16:05:45 浏览: 22
在C语言中,如果你想要打印出特定月份的日历,你可以使用`cal`库函数。不过,这个库不是标准C库的一部分,所以在某些系统上可能需要链接相应的动态库。以下是一个简单的示例,展示如何使用`cal`函数生成一个月份的日历:
```c
#include <stdio.h>
#include <time.h>
#define MONTHS {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
int main() {
int year, month;
printf("请输入年份(例如2022)和月份(1-12): ");
scanf("%d %d", &year, &month);
// 检查是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
MONTHS[1] = 29; // 如果是闰年,二月有29天
}
struct tm timeinfo = {0};
timeinfo.tm_year = year - 1900;
timeinfo.tm_mon = month - 1;
timeinfo.tm_mday = 1;
// 使用strftime格式化日期
char calendar[50][50];
strftime(calendar, sizeof(calendar), "%a %d %b %Y", &timeinfo);
calendar[0] = '\0'; // 删除多余的空格
printf("以下是%04d年%02d月的日历:\n", year, month);
for (int i = 0; i < 7; ++i) {
for (int j = 0; j < 7; ++j) {
printf("%4d ", calendar[i * 7 + j]);
if ((j+1) % 7 == 0)
printf("\n");
}
}
return 0;
}
```
阅读全文