求一个输入年月日,可以显示该月份日历的C语言程序! 求大神帮忙,谢谢!
答案:3 悬赏:60 手机版
解决时间 2021-04-01 01:44
- 提问者网友:别再叽里呱啦
- 2021-03-31 20:07
求一个输入年月日,可以显示该月份日历的C语言程序! 求大神帮忙,谢谢!
最佳答案
- 五星知识达人网友:举杯邀酒敬孤独
- 2021-03-31 20:16
#include
int getdate(int y,int m);
int leap(int y);
void print(int y,int m);
int main()
{
int y,m;
printf("输入年份和月份:");
scanf("%d%d",&y,&m);
print(y,m);
return 0;
}
int getdate(int y,int m)
{
int w=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7;
int days=0;
switch(m)
{
case 12: days+=30;
case 11: days+=31;
case 10: days+=30;
case 9: days+=31;
case 8: days+=31;
case 7: days+=30;
case 6: days+=31;
case 5: days+=30;
case 4: days+=31;
case 3: if(leap(y)) days+=29;
else days+=28;
case 2: days+=31;
case 1: days+=0;
}
w=(w+days)%7;
return w;
}
void print(int y,int m)
{
int w=getdate(y,m);
printf("%d年%d月的月历表:
",y,m);
printf("
==========================="
"========================
");
int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(leap(y)) month[1]=29;
printf("SUN MON TUE WED THU FRI SAT
");
int i,j;
for(i=0;i
for(i=w,j=1;j<=month[m-1];i++,j++)
{
if(i%7==0) printf("
");
printf("%d ",j);
}
printf("
========================"
"===========================
");
}
int leap(int y)
{
if((y%4==0&&y%100!=0)||y%400==0) return 1;
return 0;
}
int getdate(int y,int m);
int leap(int y);
void print(int y,int m);
int main()
{
int y,m;
printf("输入年份和月份:");
scanf("%d%d",&y,&m);
print(y,m);
return 0;
}
int getdate(int y,int m)
{
int w=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7;
int days=0;
switch(m)
{
case 12: days+=30;
case 11: days+=31;
case 10: days+=30;
case 9: days+=31;
case 8: days+=31;
case 7: days+=30;
case 6: days+=31;
case 5: days+=30;
case 4: days+=31;
case 3: if(leap(y)) days+=29;
else days+=28;
case 2: days+=31;
case 1: days+=0;
}
w=(w+days)%7;
return w;
}
void print(int y,int m)
{
int w=getdate(y,m);
printf("%d年%d月的月历表:
",y,m);
printf("
==========================="
"========================
");
int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(leap(y)) month[1]=29;
printf("SUN MON TUE WED THU FRI SAT
");
int i,j;
for(i=0;i
for(i=w,j=1;j<=month[m-1];i++,j++)
{
if(i%7==0) printf("
");
printf("%d ",j);
}
printf("
========================"
"===========================
");
}
int leap(int y)
{
if((y%4==0&&y%100!=0)||y%400==0) return 1;
return 0;
}
全部回答
- 1楼网友:舊物识亽
- 2021-03-31 22:21
这个我会写,可以帮你。追问可以么?谢谢,我写的运行不了! 有好多错误!追答看我头像
- 2楼网友:洒脱疯子
- 2021-03-31 21:53
啥平台 啥环境 win-console 还是linux-bash追问visual6.0追答vc6 呃呃 你大一吗 啥学校 还用这么老的IDE 这样吧 等下我打个包发百度云盘里 给你云盘链接的后半部分 你自己去下 前半部分都是一样的但会被度娘屏蔽 你自己填
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯