用c语言写一个万年历的程序
时间: 2023-09-29 19:08:06 浏览: 95
好的,下面是用 C 语言实现简单的万年历功能:
```c
#include <stdio.h>
// 计算某年某月第一天是星期几
int get_weekday(int year, int month) {
if (month == 1 || month == 2) {
month += 12;
year--;
}
int c = year / 100;
int y = year % 100;
int m = month;
int d = 1;
int w = (c / 4 - 2 * c + y + y / 4 + 13 * (m + 1) / 5 + d - 1) % 7;
return w;
}
// 输出某年某月的日历
void print_calendar(int year, int month) {
// 计算该月第一天是星期几
int w = get_weekday(year, month);
// 计算该月的天数
int days_of_month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days_of_month[1] = 29;
}
int days = days_of_month[month - 1];
// 输出日历
printf("%d年%d月\n", year, month);
printf("日 一 二 三 四 五 六\n");
for (int i = 0; i < w; i++) {
printf(" ");
}
for (int i = 1; i <= days; i++) {
if (w == 6) {
printf("%2d\n", i);
} else {
printf("%2d ", i);
}
w = (w + 1) % 7;
}
printf("\n");
}
// 主函数
int main() {
int year, month;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
print_calendar(year, month);
return 0;
}
```
使用方法:运行程序后,输入年份和月份,即可输出对应的日历。
阅读全文