有功能选择并且可以有退出功能的万年历
时间: 2024-03-25 22:39:58 浏览: 19
好的,以下是使用 C 语言实现带有功能选择和退出功能的万年历代码:
```c
#include <stdio.h>
// 计算某年是否为闰年,是返回 1,否则返回 0
int isLeapYear(int year)
{
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
// 计算某个月份的天数
int getDaysInMonth(int year, int month)
{
int days_in_month;
switch (month)
{
case 2:
if (isLeapYear(year))
{
days_in_month = 29;
}
else
{
days_in_month = 28;
}
break;
case 4:
case 6:
case 9:
case 11:
days_in_month = 30;
break;
default:
days_in_month = 31;
break;
}
return days_in_month;
}
// 计算某一天是星期几,0 表示星期日,1 表示星期一,以此类推
int getWeekday(int year, int month, int day)
{
if (month == 1 || month == 2)
{
month += 12;
year--;
}
int c = year / 100;
year %= 100;
int week_day = year + year / 4 + c / 4 - 2 * c + 26 * (month + 1) / 10 + day - 1;
week_day = (week_day % 7 + 7) % 7;
return week_day;
}
// 输出日历
void printCalendar(int year, int month)
{
// 计算本月天数和第一天是星期几
int days_in_month = getDaysInMonth(year, month);
int weekday_of_first_day = getWeekday(year, month, 1);
// 输出日历表头
printf("\n %d 年 %d 月\n", year, month);
printf(" 日 一 二 三 四 五 六\n");
// 输出本月日期
for (int i = 0; i < weekday_of_first_day; i++)
{
printf(" ");
}
for (int i = 1; i <= days_in_month; i++)
{
printf("%2d ", i);
if ((i + weekday_of_first_day) % 7 == 0)
{
printf("\n");
}
}
printf("\n");
}
int main()
{
int year, month, choice;
while (1)
{
// 显示功能菜单
printf("1. 查询某年某月的日历\n");
printf("2. 查询某年的日历\n");
printf("3. 退出程序\n");
printf("请选择功能:");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printCalendar(year, month);
break;
case 2:
printf("请输入年份:");
scanf("%d", &year);
for (int i = 1; i <= 12; i++)
{
printCalendar(year, i);
}
break;
case 3:
printf("谢谢使用,再见!\n");
return 0;
default:
printf("输入有误,请重新输入!\n");
break;
}
}
}
```
运行程序后,会显示一个功能菜单,供用户选择需要的功能。如果选择查询某年某月的日历,则需要输入年份和月份,程序会输出该月的日历。如果选择查询某年的日历,则需要输入年份,程序会输出该年每个月的日历。如果选择退出程序,则程序会结束。
相关推荐
![](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)
![](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)