_______________________________________________________ 
|  _____   _   _   _____   ____       __       ___      |
| |_   _| | | | | |_   _| |  _ \     /  \     / _ \     ||
|   | |   | | | |   | |   | | \ \   / /\ \   / / \ \    ||
|   | |   | | | |   | |   | |  \ | | /__\ | | |   | |   ||
|   | |   | |_| |  _| |_  | |__/ / |  __  | \  \_/  /   ||
|   |_|   |_____| |_____| |_____/  |_|  |_|  \_____/    ||
|_______________________________________________________||
  -------------------------------------------------------+
���꼸�¼��������ڼ��Ĺ�ʽ���Ƶ�
��ɽ����Ȫ��ѧ2010��ҵ�� ���� 2010-07-05 08:40

һ��׼������
1�������ȸ�ϰһ������ĸ�����һ��������������������֮һ����ô��һ��������꣺
a.�ܱ�4���������ܱ�100������
b.�ܱ�4������Ҳ�ܱ�400������
2��ע���Ƶ������е�-1����һ����
3���Ƶ����漰���������㣺
a.ȡģ�������ࡣ��5��2 = 2����1����5 ȡģ 2 = 1��
b.��������5��2 = 2����1����5 ���� 2 = 2��
c.�Ƶ���������mod��div�ֱ��ʾȡģ���������������㣬Ҳ���Dz���Pascal�����е��÷���
d.����˳��Ϊ��
�� ȡģ������
�� �ˡ���
�� �ӡ���
�����Ƶ�������Ԫ�������ڼ���
1��365 mod 7 = 1��366 mod 7 =2�����˵���������ƽ�꣬��ô(n+1)��Ԫ��������=(n��Ԫ��������+1)

mod 7
������ΪʲôҪ�õ�mod������������꣬��ô(n+1)��Ԫ��������=(n��Ԫ��������+2) mod 7��
2������ֻ��ƽ�꣬��0001��Ԫ��Ϊ����w����ôy��Ԫ����������{[w+(y-1)] mod 7}��������ΪʲôҪ��1��
3��Ȼ�������������꣬��0001�굽ָ������һ���ö��ٸ������أ���������Ķ�������Ӧ����ͼ�е���Ӱ���֣�
��������������������������
��������������������������
��������������������������
��������������������������
���������ܱ�400���� ������
��������������������������
�������ܱ�100����     ����
��������������������������
�����ܱ�4�������������� ��
��������������������������
���ԣ����ǵĴ��������ǣ��ȼ����ܱ�4�����IJ��֣��ټ�ȥ�ܱ�100�����IJ��֣��������ܱ�400�����IJ�

�֡�
������Ҫ���ǵ�һ���ǣ�Ʃ�磬0004�������꣬��ô���0003��Ԫ��������n����ô0004��Ԫ��������[(n+2)

mod 7]
�𣿲��ǣ�ԭ����ǣ�0004�������꣬��0004�껹û�й�ȥ��
���֪�������������̵Ĺ�ʽ���ǣ�
(y - 1) div 4 - (y - 1) div 100 + (y - 1) div 400
���-1������Ϊ�˱��������߼������á�(y - 1) div 4����˵�ɣ���4���룬����0����5���룬����1��

���÷��������ǵ�Ҫ��
4�����Լ���Ԫ�������ڼ��Ĺ�ʽ���ǣ�
a = [w + (y - 1) + (y - 1) div 4 - (y - 1) div 100 + (y - 1) div 400] mod 7��
�����Ƶ������Ƽ���һ�������ڼ��ˡ�
�����滹����ͬ����.3����Ҫ���ǵ����أ�����y��Ԫ��������n����ôy��1��1�վ���[(n + 31) mod 7]��

�������Բ��ü�31��ֻ�е�����ʱ�����Dz���Ҫ��31����Ϊһ������ʱ�Ѿ���ȥ�ˣ������Ƶ����꼸��1����

���ڼ��Ĺ�ʽ����
b = (a + m) mod 7
m����������»�����һ�¾�Ϊ0�����¾���31�����¾���31+(28��29)����ʵ�ϣ�mod������һ�����ʣ����ǽ�

��������Ϊ[���� + n��һ�������������� ����]����ô������䣬��n�Ϳ�����0������2�µ��»������Բ���

31������31 mod 7 = 3��
�����Ұ��»�������������ˣ�
���꣺0,3,4,0,2,5,0,3,6,1,4,6��
�����꣺0,3,3,6,1,4,6,2,5,0,3,5��
�ġ��Ƶ������꼸�¼��������ڼ�
����ܺÿ��ǣ�Ʃ��y��1��1�յ�����n����ô2�վ�������(n+1)�����Թ�ʽ���ǣ�
b + (d - 1)
d���Ǽ����ˡ�
�塢���ţ����ż���
���ǵĹ�ʽ�����Ƶ�����ˣ���ʵ��û�У����ǻ��и�w��������Ǿ����Ƶ�һ�£�
2010��Ԫ������5����ô
[w + (y - 1) + (y - 1) div 4 - (y - 1) div 100 + (y - 1) div 400] mod 7 = 5
Ҳ����
[w + (2010 - 1) + (2010 - 1) div 4 - (2010 - 1) div 100 + (2010 - 1) div 400] mod 7 = 5
(w + 2009 + 2009 div 4 - 2009 div 100 + 2009 div 400) mod 7 = 5
(w + 2009 + 502 - 20 + 5) mod 7 =5
(w + 2496) mod 7 = 5
(w + 4) mod 7 = 5

����ȻwΪ1��
Ҳ����˵��Ԫ0001��1��1��������1������Ҳ��һ������˵����������Sunday��ͷ�����ڷ����Dz���ѧ�ġ�
��ʵ�ϣ�����Ҫ��ô���mod���ţ���������ꡢ�¡���ֵ��ӣ������mod�Ϳ����ˡ�
���Թ�ʽ����
[y + (y - 1) div 4 - (y - 1) div 100 + (y - 1) div 400 + m + (d - 1)] mod 7
������y=>year��ţ�m=>month�»�����d=>day���ա�
����Ϊ�˷��㣬�Ұ���������д�˳���
//��Ԫ1��1��1��Ϊ����һ
#include <stdio.h>

int main(int argc, char *argv[])
{
unsigned yy,mm,dd;
unsigned firstday,week;
unsigned deapyearm[]={0,3,4,0,2,5,0,3,6,1,4,6};
unsigned ndeapyearm[]={0,3,3,6,1,4,6,2,5,0,3,5};
char* weekdays[]={"��","һ","��","��","��","��","��"};
printf("������Ϊ����������꼸�¼��������ڼ���\n");
printf("���������ڣ���ʽ���� �� �� ����");
scanf("%d %d %d",&yy,&mm,&dd);
firstday=yy+(yy-1)/4-(yy-1)/100+(yy-1)/400;
if (( yy%4==0 && yy%100!=0 ) || (yy%400==0))
{
week=firstday + deapyearm[mm-1] + dd - 1;
}
else
{
week=firstday + ndeapyearm[mm-1] + dd - 1;
}
week%=7;
printf("%d��%d��%d��������%s��\n",yy,mm,dd,weekdays[week]);
return 0;
}

�ߡ���л
��ѧ��ѧ��ʦ�ź������߻���ʦ���ҵĸ�ĸ�����ѣ��Լ�������ѧ���ı�����ԵĴ����ߡ�
�ˡ��ο�
���Ƶ���ȫ�����Ҹ�����һ��֮����ɵģ������������б����������ķ�������ҿ���ȥ���ѡ�