用C++编写万年历系统,若输入年份,输出这一年的日历,若输入年份和月份,则输出这个月的月历
时间: 2023-05-19 17:04:17 浏览: 120
C++语言编写的万年历系统
4星 · 用户满意度95%
好的,这是一个很好的编程问题。以下是一个简单的C代码示例,可以实现万年历系统:
```
#include <stdio.h>
int main() {
int year, month, day, daysInMonth, startDay, i, j;
// 获取用户输入的年份和月份
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
// 计算这个月有多少天
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
daysInMonth = 29;
} else {
daysInMonth = 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
daysInMonth = 30;
} else {
daysInMonth = 31;
}
// 计算这个月的第一天是星期几
startDay = 1;
for (i = 1; i < year; i++) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
startDay += 366;
} else {
startDay += 365;
}
}
for (i = 1; i < month; i++) {
if (i == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
startDay += 29;
} else {
startDay += 28;
}
} else if (i == 4 || i == 6 || i == 9 || i == 11) {
startDay += 30;
} else {
startDay += 31;
}
}
startDay = startDay % 7;
// 输出日历
printf("日 一 二 三 四 五 六\n");
for (i = 0; i < startDay; i++) {
printf(" ");
}
for (i = 1, j = startDay; i <= daysInMonth; i++, j++) {
if (j % 7 == 0) {
printf("\n");
}
printf("%2d ", i);
}
printf("\n");
return 0;
}
```
这个程序可以根据用户输入的年份和月份,计算出这个月的日历,并输出到控制台。
阅读全文