设计一个算法,从1700.1.1以后,找出每一天是星期几

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:48:00

求星期几有专门的公式
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D.

还有个更复杂点的
求星期公式

1.星期=[5+A(实际天数)] mod 7

2。实际天数A的计算
A=B(基本天数)+C(闰日天数)
B=(计算年-1)*365+(要计算到年的月日天数)

3.C=(计算年-1) div 4 -误差修正值 + fixValue2
fixValue2为0或者1。常值为0,当年数为闰年(公历闰年法)之中的3月1日之后的为1

4.误差修正值推算:
公元元年1月1日至1582年10月14日为0。
1582年10月15日至1699年12月31日为10。
从1701年1月1日起每增加一个世纪累加1,但能被400除尽的世纪不累加1。此方法推算即可。
--有一个问题,1700年这一年的修正值应为多少呢?算法中正好没有讲到,但看来应该是10。
1701年1月1日起误差值为11,而1801年1月1日起误差修正值为12,而1901年1月1日起误差修正值为13,但2001年误差修正值仍为13,因为2000年能被400整除,故不累加。而2101年1月1日起误差修正值为14。

采用第一个公式
#inlcude<stdio.h>
int totalday(int year,int month,int day);
int leap(int);
int main()
{
int d,w;
int year,month,day,week;
char *s;
printf("input time (year.month.day):");
scanf("%d.%d.%d",&year,&month,&day);
while(year<1700||month<0||month>12|