C语言实验(十二):函数(输入年份输出日历、闰年判断、元旦星期几)
一、判断闰年和某年元旦星期几的函数1. 编写一个函数,输入年份,判断是否为闰年;2. 编写一个函数,输入年份,判断当年元旦所对应的星期数;
二、输入日期(年、月、日),输出他是该年的第几天、星期几。三、打印年历,要求输入年份(1900以后),输出每个月的月历构成年历。即每天对应的星期。
一、判断闰年和某年元旦星期几的函数
1. 编写一个函数,输入年份,判断是否为闰年;
1、闰年:年份是4的倍数,但不是100的倍数的年份;以及年份是400的倍数的年份。
2、有闰年的定义,用代码实现即可。用取模运算判断是否是x的倍数。
2. 编写一个函数,输入年份,判断当年元旦所对应的星期数;
1、求出从1900年开始的闰年及平年数量。依此计算出共多少天,然后根据一周七日,用天数对7做取模运算。
2、结合1990年元旦为星期一,可推断出要求年份元旦是星期几。
二、输入日期(年、月、日),输出他是该年的第几天、星期几。
1、根据年份判断是否是闰年;根据月份和日期可以计算是该年第几天。 2、将该年第几天和与1900年间隔年份天数相加得到至1900年元旦的天数,对7做取模运算可推断得这一日期是星期几。
实验代码
#include
#include
int main()
{
int y,m,d;
printf("请输入日期(示例:2000.3.9)\n");
scanf("%d.%d.%d",&y,&m,&d);
Xingqi(y,m,d);
Dijitian(y,m,d);
return 0;
}
int Runnian(int year)//判断year年是否是闰年
{
if (year%4 == 0 && year%100!=0 || year%400==0)
return 1;
else
return 0;
}
int Xingqi(int year,int month,int day)//判断year年month月day日是星期几
{
int i,s=0,n,a[13];
for(i=1990;i
case 0:printf("星期日");break;
case 1:printf("星期一");break;
case 2:printf("星期二");break;
case 3:printf("星期三");break;
case 4:printf("星期四");break;
case 5:printf("星期五");break;
case 6:printf("星期六");break;
}
return 0;
}
int Dijitian(int year,int month,int day) //判断year年month月day日是这年第几天
{
int i,s=0,n,a[13];
if(Runnian(year))
a[2] = 29;
else
a[2] = 28;
for(i=1;i
printf(" %2d 月 \n",m);
printf("-------------------------------------------------\n");
printf(" 星期日 星期一 星期二 星期三 星期四 星期五 星期六\n");
printf("-------------------------------------------------\n");
for(i=0;i
printf(" %2d",d);
t++;
if(t==7) //周日换行
{
t = 0;
printf("\n\n");
}
}
printf("\n\n\n");//与下一月之间隔开
}
return 0;
}
int Runnian(int year) //判断year年是不是闰年
{
if (year%4 == 0 && year%100!=0 || year%400==0)
return 1;
else
return 0;
}
int Xingqi_yuandan(int year)//判断year年元旦是星期几
{
int m,n;
m = (year-1900)/4-(year-1900)/100+(year-1900)/400;
n = ((year-1900)*365 + m)%7+1;
return n;
}
运行结果 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200509221753997.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01hcms3NzU4,size_16,color_FFFFFF,t_70)
|