用C语言编写万年历(以下为基本功能,可扩展更多功能) 1、输入年份,判断是否为闰年 2、输入年月日,判断该日为星期几 3、输入年份,打出12个月的日历 4、输入月份,打出该月的日历 5、要求用多个函数实现
时间: 2024-05-15 19:16:12 浏览: 16
以下为C语言编写的万年历代码,实现了基本功能:
```c
#include <stdio.h>
int isLeapYear(int year) { // 判断是否为闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return 1; // 是闰年
} else {
return 0; // 不是闰年
}
}
int getDayOfWeek(int year, int month, int day) { // 计算星期几
int century, y, m, d, w;
century = year / 100;
y = year % 100;
m = month;
d = day;
if (m == 1 || m == 2) {
m += 12;
y--;
}
w = (century / 4 - 2 * century + y + y / 4 + 13 * (m + 1) / 5 + d - 1) % 7;
if (w < 0) {
w += 7;
}
return w;
}
void printMonth(int year, int month) { // 打印一个月的日历
int days, i, w;
printf("%d年%d月\n", year, month);
printf("Sun Mon Tue Wed Thu Fri Sat\n");
days = (month == 2 ? 28 + isLeapYear(year) : 31 - (month - 1) % 7 % 2);
w = getDayOfWeek(year, month, 1);
for (i = 0; i < w; i++) {
printf(" ");
}
for (i = 1; i <= days; i++) {
printf("%3d ", i);
if ((i + w) % 7 == 0) {
printf("\n");
}
}
printf("\n");
}
void printYear(int year) { // 打印一年的日历
int i;
for (i = 1; i <= 12; i++) {
printMonth(year, i);
}
}
int main() {
int year, month, day, isLeap;
printf("请输入年份:");
scanf("%d", &year);
isLeap = isLeapYear(year);
if (isLeap) {
printf("%d年是闰年\n", year);
} else {
printf("%d年不是闰年\n", year);
}
printf("请输入年月日:");
scanf("%d%d%d", &year, &month, &day);
printf("%d年%d月%d日是星期%d\n", year, month, day, getDayOfWeek(year, month, day));
printf("请输入月份:");
scanf("%d", &month);
printMonth(year, month);
printYear(year);
return 0;
}
```
代码中用了三个函数,分别实现了判断闰年、计算星期几和打印日历的功能。在`main`函数中,先让用户输入年份,判断是否为闰年,然后让用户输入年月日,计算星期几,再让用户输入月份,打印该月和该年的日历。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)