• C:根据日期判断是一年的第几天、星期几


     W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D

      Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。

      最好用的是蔡勒公式:

      W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1

      C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和
      14月来算,这时C和y均按上一年取值。

      两个公式中的[...]均指只取计算结果的整数部分。算出来的W除以7,余数是几就
      是星期几。如果余数是0,则为星期日。
      我们知道,公历的平年是365天,闰年是366天。置闰的方法是能被4整除的年份在
      2月加一天,但能被100整除的不闰,能被400整除的又闰。因此,像1600、2000、2400
      年都是闰年,而1700、1800、1900、2100年都是平年。公元前1年,按公历也是闰年。

      因此,对于从公元前1年(或公元0年)12月31日到某一日子的年份Y之间的所有整年
      中的闰年数,就等于

      [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400],

      [...]表示只取整数部分。第一项表示需要加上被4整除的年份数,第二项表示需要去掉
      被100整除的年份数,第三项表示需要再加上被400整除的年份数。之所以Y要减一,这
      样,我们就得到了第一个计算某一天是星期几的公式:

      W = (Y-1)*365 + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D. (1)

      其中D是这个日子在这一年中的累积天数。算出来的W就是公元前1年(或公元0年)12月
      31日到这一天之间的间隔日数。把W用7除,余数是几,这一天就是星期几。比如我们来
      算2004年5月1日:

      W = (2004-1)*365 + [(2004-1)/4] - [(2004-1)/100] + [(2004-1)/400] +
      (31+29+31+30+1)
      = 731702,

      731702 / 7 = 104528……6,余数为六,说明这一天是星期六。这和事实是符合的。
  • 相关阅读:
    工作——为window添加ExtJs添加回车快捷键
    ExtJs_layout_Table
    ExtJs_Grid
    人类和人类对象的使用homework
    简单的Java界面展示
    chapter three Java homework
    for循环语句
    do-while
    switch...季节
    switch的Scanner计算..
  • 原文地址:https://www.cnblogs.com/benpaobadaniu/p/5072964.html
Copyright © 2020-2023  润新知