儒略日和儒略日期计算,支持以下日历
日历 | 纪元 ¹ | 纪元 |
---|---|---|
亚美尼亚历 | 0552-07-11 CE | 亚美尼亚历 |
天文历 | 0001-01-01 CE | CE |
巴哈伊历 | 1844-03-21 CE | 巴哈伊历 |
科普特历 | 0284-08-29 CE | 戴克里先历 |
埃及历 | 0747-02-26 BCE | 那波纳撒尔历 |
埃塞俄比亚历 | 0008-08-29 CE | 基督降生历 |
法国共和历 | 1792-09-22 CE | 共和历 |
格里高利历 | 0001-01-01 CE | CE |
希伯来历 | 3761-10-07 BCE | AM |
伊斯兰历 | 0622-07-16 CE | AH |
ISO | ||
儒略历 | 0001-01-01 CE | CE |
花剌子密历 | 0632-06-21 CE | 雅兹德格尔德历 |
马其顿历 | 0312-09-01 BCE | 亚历山大历 |
玛雅历 | 3114-09-06 BCE | |
波斯历 | 0632-06-16 CE | 雅兹德格尔德历 |
萨卡历 | 0079-03-24 CE | 萨卡历 |
叙利亚历 | 0312-10-01 BCE | 亚历山大历 |
¹ 儒略历中的纪元
儒略日数字相互转换算法使用整数数学以避免舍入误差,并且已对公元前 999,999 年至公元后 999,999 年的所有有效儒略日数字进行了往返测试。
在 Xcode 中为 https://github.com/sbooth/JulianDayNumber 添加软件包依赖项。
swift build
.let jd = AstronomicalCalendar.julianDateFrom(year: 1919, month: 5, day: 29)
// 2422107.5
注意
天文历是一种混合日历,1582 年 10 月 15 日之前的日期使用儒略历,之后的日期使用格里高利历。
Date
实例。let d = Date(julianDate: 2422107.5)
// Foundation.Date 1919-05-29 00:00:00 UTC
let j = GregorianCalendar.julianDayNumberFrom(year: 2013, month: 10, day: 31)
let julianYMD = JulianCalendar.dateFromJulianDayNumber(j)
// (year: 2013, month: 10, day: 18)
最新文档 由 Swift Package Index 托管。
所有公共类、结构体和函数都应进行文档记录。如果您发现文档不足,请打开新 issue。
下表总结了儒略日数字计算的算术限制。
日历 | 最小 JDN | 最大 JDN |
---|---|---|
亚美尼亚历 | Int.min + 341 |
Int.max - 317 |
巴哈伊历 | Int.min + 56457 |
2305795661307959248 |
科普特历 | Int.min + 384 |
(Int.max - 3) / 4 - 124 |
埃及历 | Int.min + 611 |
Int.max - 47 |
埃塞俄比亚历 | Int.min + 384 |
(Int.max - 3) / 4 - 124 |
法国共和历 | Int.min + 56759 |
2305795661307960548 |
格里高利历 | Int.min + 56457 |
2305795661307959247 |
希伯来历 | Int.min + 106960181 |
355839970905570 |
伊斯兰历 | Int.min + 325 |
(Int.max - 15) / 30 - 7664 |
儒略历 | Int.min + 144 |
(Int.max - 3) / 4 - 1401 |
花剌子密历 | Int.min + 341 |
Int.max - 317 |
马其顿历 | Int.min + 144 |
(Int.max - 3) / 4 - 1401 |
玛雅长纪历 | Int.min + 584291 |
Int.max |
波斯历 | Int.min + 336 |
Int.max - 77 |
萨卡历 | Int.min + 56457 |
2305795661307959298 |
叙利亚历 | Int.min + 144 |
(Int.max - 3) / 4 - 1401 |
JulianDayNumber 在 MIT 许可证下发布。