c语言设计万年历。输年判断闰年 输年月日判断星期几 输年打出12个月日历 输月打出该月日历用多个函数实现

如题所述

#include <stdio.h>
int jisuan(int year,int month);
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
void display(int day,int month)
{
int i;
printf(" %d月 \n",month);
printf("日 一 二 三 四 五 六 \n");
for(i=0;i<day;i++)
{
printf(" ");
}
for(i=1;i<=days[month-1];i++,day++)
{
if(i<=9)
{
printf(" ");
}
printf("%d ",i);
if(day%7==6)
{
printf("\n");
}
}
printf("\n********************\n");
}
void control(int set)
{
int year,month=1,day_1,i,m;
switch(set)
{
case 1:
{
printf("输入你想查询的年代?\n");
scanf("%d",&year);
for(i=1;i<=12;i++)
{
day_1=jisuan(year,month);
display(day_1,month++);
}
break;

}
case 2:
{
printf("输入你想查询的年代?\n");
scanf("%d",&year);
printf("输入你想知道的月份?\n");
scanf("%d",&month);
day_1=jisuan(year,month);
display(day_1,month);
break;
}
case 3:
{
printf("输入你想查询的年代?\n");
scanf("%d",&year);
if(year%4==0&&year%100!=0||year%100==0&&year%400==0)
{
printf("本年是闰年!!!!\n");
//days[1]+=1;
}
break;
}
case 4:
{
printf("输入你想查询的年代?\n");
scanf("%d",&year);
printf("输入你想知道的月份?\n");
scanf("%d",&month);
printf("输入你想知道的日子?\n");
scanf("%d",&m);
day_1=jisuan(year,month);
printf("该日为星期%d\n",(day_1+m)%7);
break;
}
default:break;
}
}
main()
{
int setting;
printf("您需要做什么操作?\n");
printf("1、打印年历\n");
printf("2、打印月历\n");
printf("3、判断是否为闰年\n");
printf("4、判断该日为星期几\n");
printf("请按数字选择(1-4)?\n");
scanf("%d",&setting);
control(setting);
}
int jisuan(int year,int month)
{
int zong_day=0,temp,t,i;
if(year%4==0&&year%100!=0||year%100==0&&year%400==0)
{
days[1]+=1;
}
for(i=0;i<month-1;i++)
{
zong_day+=days[i];
}
temp=year-1+(year-1)/4+(year-1)/400+(year-1)/100+zong_day+1;
t=temp%7;
return t;
}
温馨提示:答案为网友推荐,仅供参考
相似回答