求c语言编写万年历,要求输入一个年份,会显示那一个年份的一到十二月,还包括星期几。会的大神求解
答案:2 悬赏:40 手机版
解决时间 2021-12-30 05:55
- 提问者网友:蔚蓝的太阳
- 2021-12-29 07:36
求c语言编写万年历,要求输入一个年份,会显示那一个年份的一到十二月,还包括星期几。会的大神求解
最佳答案
- 五星知识达人网友:从此江山别
- 2021-12-29 08:30
我写过一个程序,输入日期能显示出是星期几,我把代码给你,你先给我采纳,我下午四点帮你写,现在没时间。
//输入日期 能知道是星期几。
#include<stdio.h>
int run(int n,int y,int r);//润平年判断与计算函数,结果为,此日期为当年的第几天。
int js(int n,int m);//计算函数,计算n1年与n2年之间整年的天数。
int main()
{
int n1,y1,r1,s1,s2;
printf("请出入年份:"); scanf("%d",&n1); printf("\n");
printf("请出入月份(1~12):"); scanf("%d",&y1); printf("\n");
printf("请出入号数(1~31):"); scanf("%d",&r1); printf("\n");
s1 = run(n1,y1,r1);
s2 = js(n1,0);
switch((s1+s2)%7)
{
case 0:printf("星期6\n");break;
case 1:printf("星期7\n");break;
case 2:printf("星期1\n");break;
case 3:printf("星期2\n");break;
case 4:printf("星期3\n");break;
case 5:printf("星期4\n");break;
case 6:printf("星期5\n");break;
default:break;
}
}
int run(int n,int y,int r)
{
int run=0;
int sum=0;
int N[12]={31,28,31,30,31,30,31,31,30,31,30,31};//平年数组。
int i;
if(n%4==0&&n%100!=0||n%400==0){run=1;}//闰年的条件。
if(run) N[1]=29;//闰年二月29天。
for(i=0;i<y-1;i++){
sum = sum+N[i];//到y月前,此年经过了多少天。
}
sum = sum + r;//总天数。
return sum;
}
int js(int n,int m)
{
int i,a=0,sum=0;
for(i=n-2;i>=m;i--){
if(i%4==0&&i%100!=0||i%400==0){
a=366;
}else a=365;
sum = sum + a;
}
return sum;
}
//输入日期 能知道是星期几。
#include<stdio.h>
int run(int n,int y,int r);//润平年判断与计算函数,结果为,此日期为当年的第几天。
int js(int n,int m);//计算函数,计算n1年与n2年之间整年的天数。
int main()
{
int n1,y1,r1,s1,s2;
printf("请出入年份:"); scanf("%d",&n1); printf("\n");
printf("请出入月份(1~12):"); scanf("%d",&y1); printf("\n");
printf("请出入号数(1~31):"); scanf("%d",&r1); printf("\n");
s1 = run(n1,y1,r1);
s2 = js(n1,0);
switch((s1+s2)%7)
{
case 0:printf("星期6\n");break;
case 1:printf("星期7\n");break;
case 2:printf("星期1\n");break;
case 3:printf("星期2\n");break;
case 4:printf("星期3\n");break;
case 5:printf("星期4\n");break;
case 6:printf("星期5\n");break;
default:break;
}
}
int run(int n,int y,int r)
{
int run=0;
int sum=0;
int N[12]={31,28,31,30,31,30,31,31,30,31,30,31};//平年数组。
int i;
if(n%4==0&&n%100!=0||n%400==0){run=1;}//闰年的条件。
if(run) N[1]=29;//闰年二月29天。
for(i=0;i<y-1;i++){
sum = sum+N[i];//到y月前,此年经过了多少天。
}
sum = sum + r;//总天数。
return sum;
}
int js(int n,int m)
{
int i,a=0,sum=0;
for(i=n-2;i>=m;i--){
if(i%4==0&&i%100!=0||i%400==0){
a=366;
}else a=365;
sum = sum + a;
}
return sum;
}
全部回答
- 1楼网友:独钓一江月
- 2021-12-29 08:55
我给你一个我编的,你自己修改吧,内容差不多
# include
# include
void printmonth(int m);
void printhead(int m);
int daysofmonth(int m);
int firstday(int y);
int year,weekday;
void main()
{
int i;
printf("请输入年份:");
scanf("%d",& year);
weekday=firstday(year);
printf("\n\n");
printf(" %d年\n",year);
for(i=1;i<=12;i++)
{
printmonth(i);
printf("\n");
}
printf("\n\n");
}
void printmonth(int m) //打印每月日历
{
int i,days;
printhead(m);
days=daysofmonth(m);
for(i=1;i<=days;i++)
{
printf("%5d",i);
weekday=(weekday+1)%7;
if (weekday==0) printf("\n ");
}
}
void printhead(int m) //打印每月的日历头(判定起始位置)
{
int i;
printf("\n%d月 日 一 二 三 四 五 六\n",m);
printf(" ");
for(i=0;i
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯