题目
编写一个程序,只要输入年月日,就能回答那天是星期几。
能被4整除但不能被100整除的,或者能被400整除的是闰年。
输入
输入一个日期,包括年、月、日。(一组测试数据)
输出
输出这个日期是星期几。
样例输入
1 1 1
2 1 1
2006 7 10
样例输出
Monday
Tuesday
Monday
源代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int year, month, day;
int yd, md; // 定义年份和月份代码
int dh; // 定义dh为代码和
int xin;
scanf("%d%d%d", &year, &month, &day);
int yushu1, yushu2;
yd = ((year%100)/4 + (year%100))%7;
yushu1 = year%4;
yushu2 = year%100;
if(yushu1 = 0 && yushu2 != 0) // 能被4整除不能被100整除是闰年
{
if(month == 1)
{
md = 5;
}
if(month == 2)
{
md = 1;
}
if(month == 3)
{
md = 2;
}
if(month == 4)
{
md = 5;
}
if(month == 5)
{
md = 0;
}
if(month == 6)
{
md = 3;
}
if(month == 7)
{
md = 5;
}
if(month == 8)
{
md = 1;
}
if(month == 9)
{
md = 4;
}
if(month == 10)
{
md = 6;
}
if(month == 11)
{
md = 2;
}
if(month == 12)
{
md = 4;
}
xin = (day+md+yd)%7;
switch(xin)
{
case 1:printf("Monday\n");
break;
case 2:printf("Tuesday\n");
break;
case 3:printf("Wednesday\n");
break;
case 4:printf("Thursday\n");
break;
case 5:printf("Friday\n");
break;
case 6:printf("Saturday\n");
break;
case 7:printf("Sunday\n");
break;
}
}
else
{
if(month == 1)
{
md = 6;
}
if(month == 2)
{
md = 2;
}
if(month == 3)
{
md = 2;
}
if(month == 4)
{
md = 5;
}
if(month == 5)
{
md = 0;
}
if(month == 6)
{
md = 3;
}
if(month == 7)
{
md = 5;
}
if(month == 8)
{
md = 1;
}
if(month == 9)
{
md = 4;
}
if(month == 10)
{
md = 6;
}
if(month == 11)
{
md = 2;
}
if(month == 12)
{
md = 4;
}
xin = (day+md+yd) % 7;
switch(xin)
{
case 1:printf("Monday\n");
break;
case 2:printf("Tuesday\n");
break;
case 3:printf("Wednesday\n");
break;
case 4:printf("Thursday\n");
break;
case 5:printf("Friday\n");
break;
case 6:printf("Saturday\n");
break;
case 7:printf("Sunday\n");
break;
}
}
return 0;
}