_______________________________________________________
| _____ _ _ _____ ____ __ ___ |
| |_ _| | | | | |_ _| | _ \ / \ / _ \ ||
| | | | | | | | | | | \ \ / /\ \ / / \ \ ||
| | | | | | | | | | | \ | | /__\ | | | | | ||
| | | | |_| | _| |_ | |__/ / | __ | \ \_/ / ||
| |_| |_____| |_____| |_____/ |_| |_| \_____/ ||
|_______________________________________________________||
-------------------------------------------------------+
���꼸�¼��������ڼ��Ĺ�ʽ���Ƶ�
��ɽ����Ȫ��ѧ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;
}
�ߡ���л
��ѧ��ѧ��ʦ�ź������߻���ʦ���ҵĸ�ĸ�����ѣ��Լ�������ѧ���ı�����ԵĴ����ߡ�
�ˡ��ο�
���Ƶ���ȫ�����Ҹ�����һ��֮����ɵģ������������б����������ķ�������ҿ���ȥ���ѡ�