用c语言编写输入年份和月份输出对应日历
时间: 2024-12-30 19:40:59 浏览: 11
在C语言中,要编写一个简单的程序来输入年份和月份,并输出该月的日历,我们可以使用`<stdio.h>`库来处理输入和输出,以及`<time.h>`库来获取当前日期并计算其他日期。这里是一个基本的示例:
```c
#include <stdio.h>
#include <time.h>
void print_calendar(int year, int month) {
struct tm calendar = {0};
// 设置日历年份和月份
calendar.tm_year = year - 1900;
calendar.tm_mon = month - 1; // 时间表示法从0开始计数
// 获取第一天是星期几
calendar.tm_mday = 1;
time_t t = mktime(&calendar);
calendar.tm_wday = wday(t); // 0代表周日,1周一,以此类推
printf("Calendar for %d-%02d\n", year, month);
for (int i = 1; i <= 7; ++i) {
if (i == calendar.tm_wday + 1) {
printf("%d ", i);
} else {
printf("%4d ", i);
}
}
printf("\n");
for (int day = 1; day <= calendar.tm_mday; ++day) {
if (day < 10) {
printf(" ");
}
printf("%2d", day);
if ((day % 7 == 6) || (day == calendar.tm_mday)) {
printf("\n");
} else {
printf(" ");
}
}
}
int main() {
int year, month;
printf("Enter the year and month (YYYY-MM): ");
scanf("%d-%d", &year, &month);
// 检查输入是否有效,实际项目中需要更严格的验证
if (year >= 1 && month >= 1 && month <= 12) {
print_calendar(year, month);
} else {
printf("Invalid input.\n");
}
return 0;
}
```
在这个程序中,我们首先获取用户输入的年份和月份,然后计算出该月的第一天是星期几,再逐行打印出日历。请注意,这只是一个基础版本,实际应用中可能需要处理闰年、月份天数变化等复杂情况。
阅读全文