日期计算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日期计算相关的知识,希望对你有一定的参考价值。

闰年的详细定义:

  1. 年份非整百且能被 4 整除的为闰年。(如 2004 年就是闰年, 2005 年不是闰年)
  2. 年份能被 400 整除的是闰年。(如 2000 年是闰年,1900 年不是闰年)

int is_leap_year(int year) {
    if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) {
        return 1;
    }
    return 0;
}

经常会遇到别人问你几月几号是星期几的情况,如何不查日历,直接用程序算出来呢?一种最简单的方法是,记住很久以前的某一天是星期几,比如公元 1 年 1 月 1 日是星期一。然后一天一天模拟,算出日期是星期几。这种方法容易理解,但是实现起来代码可能比较长。除此之外,有一个公式可以快速地根据日期计算这一天是星期几,这被称为 蔡基姆拉尔森计算公式

假设星期为 w, 年份为 y, 月份为 m, 日期为 d

w=(d+2×m+3×(m+1)/5+y+y/4?y/100+y/400)%7

然后把计算出来的 w 加上 1 就是真正的星期几了。

注意每年的 1,2 月要当成上一年 13,14 月计算,上述的除法均为整除。

小知识:历史上日期进行过一次修改,罗马教皇格里高利十三世在 1582 年组织了一批天文学家,根据哥白尼日心说计算出来的数据,对日历作了修改。将 1582 年 10 月 5 日到 14 日之间的 10 天宣布撤销,继 10 月 4 日之后为 10 月 15 日。后来人们将这一新的历法称为“格里高利历”,也就是今天世界上所通用的历法,简称格里历或公历。

以上是关于日期计算的主要内容,如果未能解决你的问题,请参考以下文章

access计算日期之差

android里 怎么计算日期差

excel表格日期计算天数

SQL是计算两个日期相差多少天数的函数?

c#如何计算两个日期之间相隔天数

delphi中如何计算当前日期与一个固定日期间的天数