死亡冰柱300冰强:C语言问题---计算星期

来源:百度文库 编辑:高校问答 时间:2024/04/30 05:27:03
【问题描述】
已知1980年1月1日是星期二。
任意输入一个日期,求这一天是星期几。
【输入形式】
从键盘输入一行字符串“Y-M-D”,是一个有效的公历日期。其中Y为年(1980≤Y≤3000),M为月,D为天,都不带有前缀0。
【输出形式】
在屏幕输出结果。
输出只有一行,是代表该日星期的字符串。对于星期一至星期日,分别输出Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday。在行末要输出一个回车符。判断闰年的算法是:

年份能被4整除并且不能被100整除,或者能被四百整除。
【输入样例】
2004-1-6
【输出样例】
Tuesday

这太简单不过了

不会做啊好像很难啊,是不是下面的程序应该在case 后面加上break;啊我想是这样的不知道对不对啊

#define YES 1
#define NO 0
int isleap(int year)
{int leap=NO;
if(year%4==0&&year%100!=0||year%400==0)
leap=YES;
return leap;
}
int week-of-new-year-day(int year)
{int n=year-1980;
n=n+n/4+1;
n=n%7;
return n;
}

main()
{ int year,month,day,weekday,len,i,j;
scanf("%d-%d-%d",&year,&month,&day);
weekday=week_of_newyears_day(year);
for(i=1;i<=month-1;j++)
{
if(i==4||i==6||i==9||i==11)
len=30;
else if(i==2)
{if (isleap(year))
len=29;
else len=28;
}
else len=31;
for(j=1;j<=len;j++)
{ weekday++;weekday%=7;}

}
for(i=1;i<=day;i++)
{weekday++;weekday%=7;}
swith(weekday)
{ case 1:printf("SUNDAY");
case 2:printf("MONDAY");
case 3:printf("THEUSDAY");
case 4:printf("WEDNESDAUY");
case 5:printf("THURSDAY");
case 6:printf("FRISDAY");
case 7:printf("SATURDAY");
}
}

就是嘛给个10分也很多人告诉你啊