地砖上可以直接铺地砖:计算某年的第一天是星期几的公式! -- 编程爱好者论坛存档帖

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 07:50:33
首先,利用你的公式编一简单程序:
main()
  { int year;/*年份*/
    int w;   /*星期几*/
    scanf ("%d",&year);
    w=((year-1)+ (year-1)/4-(year-1)/100+(year-1)/400+1)%7;
    printf("%d\n",w);
    getch();
  }

运行时,输入1,得到结果1。即,如果这个公式正确,公元1年的第一天是星期一。这是一个计

算前提,必须先搞清楚。

然后要知道闰年的规定:凡是年份能够被4整除、且不能被100整除的是闰年;凡是年份能被400

整除的也是闰年;除此以外的年份都不是闰年。

第三要知道闰年366天、平年365天,不知道这个的得重新上小学。

有了这三个基础,就好办了。公元1年第一天(下文简称"起始天")之后,要计算某天是星期几

,只要用“这天与起始天之差”,与7求余,当余数为0,则这天与起始天星期几相同,也是星

期一;否则,这个余数+1就是这天的星期几。

假设这个程序时输入年份year,则该年的第一天距离起始天的差是:
   (year-1)*365+(公元1年到公元year-1年内的闰年个数(每个闰年多一天啊!))  。。。

。。。。(1)

公元1年到公元year-1年内的闰年个数的计算:
根据闰年规定,反过来考虑可以知道:
大致每4年有1个闰年,这样算得到:
      公元1年到公元year-1年内的闰年个数=(year-1)/4
但,每一百年要扣掉1个闰年,修正一下得到:
      公元1年到公元year-1年内的闰年个数=(year-1)/4-(year/100)
扣多了!每400年又要增加一个闰年,再次修正得到:
      公元1年到公元year-1年内的闰年个数=(year-1)/4-(year/100)+(year/400)
这次准确了。

代入(1)得到年份year第一天距离起始天的差是:
      (year-1)*365+(year-1)/4-(year/100)+(year/400)

这天是星期几?前面说过,是这个差与7求余+1:
      [(year-1)*365+(year-1)/4-(year/100)+(year/400)]%7+1

这个末尾的1可以放到被除数里面,即:
      [(year-1)*365+(year-1)/4-(year/100)+(year/400)+1] %7
     =[(year-1)*(364+1)+(year-1)/4-(year/100)+(year/400)+1] %7
     =[(year-1)*364+(year-1)+(year-1)/4-(year/100)+(year/400)+1] %7
364是7的倍数,year*364也一定是7的倍数,所以year*364可以去掉,这就得到了

最后的计算式:
     =[(year-1)+(year-1)/4-(year/100)+(year/400)+1] %7


这个[ ]内最后的1,可以看成是新年的第1天。更一般地,year年度的第D天是星期几?可以用下式计算:
[(year-1)+(year-1)/4-(year/100)+(year/400)+D] %7
一星期的第一天是星期几 一个星期的第一天是星期几? 计算随便一天是星期几的方法 请解释一下这个求某年的某天是星期几的公式 如何计算出一年的第一天是星期几? 如何计算任意一天是星期几? 谁能告诉我公元元年的第一天是星期几?? 某年的3月1日是星期一,那么那年的6月1日是星期几??? 某年有三月份,星期五的日期全部加起来的和是80.问:3月1日是星期几? 有没有一种简单的计算方法,在说出某年末月末日后,能知道是星期几? 每个星期的第一天是星期一还是星期日? 在每个星期的第一天是星期一还是星期日? 请教高手:java编程中用什么类方法得到一年中某个月的第一天是星期几? 日本袭击珍珠港的行动代号?这一天是星期几? 求任意一天是星期几的数学等式。 星期1的100的100个次方后的一天是星期几? 某年的2月份有5个星期日这年的6月1日是星期几? 请写过程 计算星期几.我的看法. 某年,有两个相邻月份的第一天都是星期天,这两个相邻月份是( )、( )月,这一年一共有()天。 一个星期的开始是星期几??? 今天是星期三,那么7K天后的那一天是星期几?7K天前一天的那一天是星期几? 知道年月日 如何知道是星期几,有没有固定的公式? 某年的9月有五个星期日但9月1日不是星期日,它是星期几? 在英语中一个星期的第一天是星期日还是星期一??