#include "stdio.h"
#include "conio.h"
/*某年某月某日是星期几其实是有一个公式的
那就是把某年历上的一日的前一个星期几记着一个数,星期七为0;那么润年三到12月加二来年一二月+2
就按这表可以计算出某日是星期几..
不知道网上有没有这种算法,我在小学的时候看日历探索出来的蒙人玩的,不管科不科学,反正就是没错..
*****************************************************/
main()
{
int yueb[]={0,5,1,1,4,6,2,4,0,3,5,1,3};/*这是用网上一个日历器看的公元1年月表,应该是对的*/
int nian,yue,ri,i,n;
printf("输入年月日:
( 比如: 2001 5 12)\n");
scanf("%d%d%d",&nian,&yue,&ri);
if (yue<3)
{
for (i=1;i<nian;i++)
{
yueb[yue]++;
if(yueb[yue]==7)yueb[yue]=0;//把7还原成0
if ((i-1)%4==0&&i>3&&i%100!=0)//求初始的润年
{
yueb[yue]++;
if(yueb[yue]==7)yueb[yue]=0;//把7还原成0
}
}
}
if (yue>2)
{
for (i=1;i<nian;i++)
{
yueb[yue]++;
if(yueb[yue]==7)yueb[yue]=0;//把7还原成0
if (i%4==0&&i>3&&i%100!=0)
{
yueb[yue]++;
if(yueb[yue]==7)yueb[yue]=0;//把7还原成0
}
}
}
n=(yueb[yue]+ri)%7;
switch (n)
{
case 0:
printf("这天是星期天");break;
case 1:
printf("这天是星期一");break;
case 2:
printf("这天是星期二");break;
case 3:
printf("这天是星期三");break;
case 4:
printf("这天是星期四");break;
case 5:
printf("这天是星期五");break;
case 6:
printf("这天是星期六");break;
}
getch();
}