儒略日算法

儒略日

本文参考陈硕老师的实现,感谢陈硕老师的讲解。
【日期计算(上):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
posted @ 2022-11-02 23:22  有你何须仰望  阅读(154)  评论(0编辑  收藏  举报