📜  日历

📅  最后修改于: 2021-05-24 16:51:18             🧑  作者: Mango

在“日历”中,问题主要基于查找星期几(如果给定日期)。例如,可能会要求我们找到1981年2月2日。

  • 从日期开始查找日期基于计算的奇数天数。奇数天是指天数多于完整周数。例如,
    非–年的天数= 365
    365模组7 = 1
    因此,非–年的奇数天数= 1
  • a年的天数= 366
    => year年的奇数天数= 366 mod 7 = 2
  • 100年中的奇数天数(76个非–年+ 24个leap年)= [(76 x 1)+(24 x 2)] mod 7 =(76 + 48)mod 7 = 124 mod 7 = 5天
  • 200年中的奇数天数=(2 x 100年中的奇数天数)mod 7 = 10 mod 7 = 3
  • 300年中的奇数天数=(3 x 5)mod 7 = 1
  • 400年中的奇数天数=(4 x 5 +1)mod 7 = 21 mod 7 = 0
    请注意,在这里,我们增加了1天,因为第400年本身就是a年。
  • 要检查非百年年份是否为a年,我们将其除以4。如果余数为0,则该年为a年。例如,2016 mod 4 =0。因此,我们可以安全地推断出2016年是a年。
  • 要检查百年年份是否为a年,我们将其除以400。如果余数为0,则该年为a年。例如,1700 mod 400 =100。因此,这不是a年。但是1600 mod 400 =0。因此,我们可以安全地推论1600是year年。
  • 奇数天数= 0,天=星期日
    奇数天数= 1,天=星期一
    奇数天数= 2,天=星期二
    奇数天数= 3,天=星期三
    奇数天数= 4,天=星期四
    奇数天数= 5,天=星期五
    奇数天数= 6,天=星期六

样本问题