
C语言编程实现以下功能:已知2009年1月10日是星期六,现输入其后的任一日期,求该日是星期几 30
要求在主函数中输入日期,调用自定义函数whichday(使用结构体变量作涵餐)进行求解。希望会的人回答,不要随便乱贴些答案上来,谢谢!...
要求在主函数中输入日期,调用自定义函数 whichday(使用结构体变量作涵餐)进行求解。
希望会的人回答,不要随便乱贴些答案上来,谢谢! 展开
希望会的人回答,不要随便乱贴些答案上来,谢谢! 展开
1个回答
展开全部
这是我刚写的,希望对你有所帮助,还有不懂的我们可以互相交流!
#include "stdafx.h"
#include <math.h>
void which_day(int,int,int);
int main(int argc, char* argv[])
{
int year,month,day;
printf("请输入年月日,用空格隔开:");
scanf("%d%d%d",&year,&month,&day);
which_day(year,month,day);
return 0;
}
void which_day(int year,int month,int day)
{
int week;
int sum=0;//计算从该年1月1日到所查询日期一共多少天
int leap;//判断是否是闰年
switch(month)
{
case 1:{sum=0;break;}
case 2:{sum=31;break;}
case 3:{sum=59;break;}
case 4:{sum=90;break;}
case 5:{sum=120;break;}
case 6:{sum=151;break;}
case 7:{sum=181;break;}
case 8:{sum=212;break;}
case 9:{sum=243;break;}
case 10:{sum=273;break;}
case 11:{sum=304;break;}
case 12:{sum=334;break;}
default:{printf("error!");break;}
}
sum=sum+day;
if((year%400==0)||(year%4==0&&year%100!=0))
leap=1;
else
leap=0;
if(leap==1&&month>2)
sum+=1;
year=year-1;
week=(int)(year+year/4.0-year/100.0+year/400.0+sum)%7;//利用蔡勒公式变形式计算某一天是星期几
switch(week)
{
case 0:{printf("%-4d年%d月%d日是星期日",year,month,day);break;}
case 1:{printf("%-4d年%d月%d日是星期一",year,month,day);break;}
case 2:{printf("%-4d年%d月%d日是星期二",year,month,day);break;}
case 3:{printf("%-4d年%d月%d日是星期三",year,month,day);break;}
case 4:{printf("%-4d年%d月%d日是星期四",year,month,day);break;}
case 5:{printf("%-4d年%d月%d日是星期五",year,month,day);break;}
case 6:{printf("%-4d年%d月%d日是星期六",year,month,day);break;}
}
printf("\n");
}
#include "stdafx.h"
#include <math.h>
void which_day(int,int,int);
int main(int argc, char* argv[])
{
int year,month,day;
printf("请输入年月日,用空格隔开:");
scanf("%d%d%d",&year,&month,&day);
which_day(year,month,day);
return 0;
}
void which_day(int year,int month,int day)
{
int week;
int sum=0;//计算从该年1月1日到所查询日期一共多少天
int leap;//判断是否是闰年
switch(month)
{
case 1:{sum=0;break;}
case 2:{sum=31;break;}
case 3:{sum=59;break;}
case 4:{sum=90;break;}
case 5:{sum=120;break;}
case 6:{sum=151;break;}
case 7:{sum=181;break;}
case 8:{sum=212;break;}
case 9:{sum=243;break;}
case 10:{sum=273;break;}
case 11:{sum=304;break;}
case 12:{sum=334;break;}
default:{printf("error!");break;}
}
sum=sum+day;
if((year%400==0)||(year%4==0&&year%100!=0))
leap=1;
else
leap=0;
if(leap==1&&month>2)
sum+=1;
year=year-1;
week=(int)(year+year/4.0-year/100.0+year/400.0+sum)%7;//利用蔡勒公式变形式计算某一天是星期几
switch(week)
{
case 0:{printf("%-4d年%d月%d日是星期日",year,month,day);break;}
case 1:{printf("%-4d年%d月%d日是星期一",year,month,day);break;}
case 2:{printf("%-4d年%d月%d日是星期二",year,month,day);break;}
case 3:{printf("%-4d年%d月%d日是星期三",year,month,day);break;}
case 4:{printf("%-4d年%d月%d日是星期四",year,month,day);break;}
case 5:{printf("%-4d年%d月%d日是星期五",year,month,day);break;}
case 6:{printf("%-4d年%d月%d日是星期六",year,month,day);break;}
}
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询