c语言编程题 已知2012年1月1日是星期日,现在输入其后的任意一个日期(年份不超过9999), 计算该日是星期几.

要求在主函数中调用自定义函数days进行求解,计算结果传回主函数输出。函数的实参和形参均要求使用结构体变量。... 要求在主函数中调用自定义函数days进行求解,计算结果传回主函数

输出。函数的实参和形参均要求使用结构体变量。
展开
 我来答
匿名用户
2012-12-05
展开全部
typedef struct DATE
{
int year;
int month;
int day;
}DATE;
DATE StanderdDate{2012,1,1};//标准日期
int StanderdDayOfWeek =6;//标准日期是周几 //周日
bool isRuiYear(int year)//判断是否闰年
{
if((year % 400 == 0)|(year % 4 == 0)&(year % 100 != 0))
return true;
else
return false;
}

int SumDays(DATE date)
{
if(date.)
int sum=0;//日期天数差值
int i=0;//循环变量
for(i=0;i<date.year-StanderdDate.year;i++)
{
if(isRuiYear(StanderdDate.year+i))//判断是否闰年
sum+=366;
else
sum+=365;
};
int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};//非闰年
for(i=0;i<date.month-StanderdDate.month;i++)
{
sum+=mon[StanderdDate.month+i];
if(i==1)
{
if(isRuiYear(date.year))
sum+=1;//润年+1
}
};
sum+=date.day-StanderdDate.day;//
return (sum+StanderdDayOfWeek)%7;//返回星期几
}
dingba12345
2012-12-05 · 超过32用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:88.1万
展开全部
#include"stdio.h"
typedef struct {
int year;
int month;
int day;
}Date;
bool IsLeapYear(int year)
{
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
return true;
return false;
}
else
return true;
}
else
return false;
}
int days(Date date)
{
int weekday=7;
for(int year=2012;year<date.year;year++)
if(IsLeapYear(year))
weekday=(weekday+2)%7;
else
weekday=(weekday+1)%7;

for(int month=1;month<date.month;month++)
if(month==1 || month==3 ||month==5 ||month==7 ||month==8 ||month==10 ||month==12 )
weekday=(weekday+3)%7;
else
if(month==4 || month==6 ||month==9 ||month==11 )
weekday=(weekday+2)%7;
else
if(IsLeapYear(year))
weekday=(weekday+1)%7;

for(int day=1;day<date.day;day++)
;
weekday=(weekday+day-1)%7;

return weekday;
}
void main()
{
Date date;
scanf("%d%d%d",&date.year,&date.month,&date.day);//依次输入年,月,日
printf("%d",days(date));
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abcdecaiguai
2012-12-09
知道答主
回答量:41
采纳率:0%
帮助的人:5.9万
展开全部
去网上找
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式