儒略日算法
儒略日
本文参考陈硕老师的实现,感谢陈硕老师的讲解。
【日期计算(上):Julian Day 算法把日期转为连续整数】 https://www.bilibili.com/video/BV1pR4y197Y3/?share_source=copy_web&vd_source=bddaa01f6a5f571b3cd497c0fe470f4a
C/C++
// 儒略日 C++14
auto toJulianDay(int year, int month, int day) -> int {
const int adj = (14 - month) / 12;
const int y = year + 4800 - adj;
const int m = month + 12 * adj - 3;
return day + (153 * m + 2) / 5 + y * 365 + y / 4 - y / 100 + y / 400 - 32045;
}
Golang
// 儒略日
func toJulianDay(year int, month int, day int) int {
adj := (14 - month) / 12
y := year + 4800 - adj
m := month + 12*adj - 3
return day + (153*m+2)/5 + y*365 + y/4 - y/100 + y/400 - 32045
}
Python
# 儒略日
def to_julian_day(year: int, month: int, day: int) -> int:
adj = (14 - month) // 12
y = year + 4800 - adj
m = month + 12 * adj - 3
return day + (153 * m + 2) // 5 + y * 365 + y // 4 - y // 100 + y // 400 - 32045