闰年的详细定义:
- 年份非整百且能被 4 整除的为闰年。(如 2004 年就是闰年, 2005 年不是闰年)
- 年份能被 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 日。后来人们将这一新的历法称为“格里高利历”,也就是今天世界上所通用的历法,简称格里历或公历。
时间: 2024-10-10 03:17:35