gpt4 book ai didi

python-2.7 - 在python中计算朱利安日期

转载 作者:行者123 更新时间:2023-12-02 06:32:19 25 4
gpt4 key购买 nike

我正在尝试在 python 中创建一个朱利安约会并且遇到了重大的困难。有没有比这更简单的了:

jul = juliandate(year,month,day,hour,minute,second)

其中 jul 将类似于 2457152.0(小数点随时间变化)?

我试过 jdcal,但不知道如何添加时间组件(jdcal.gcal2jd() 只接受年、月和日)。

最佳答案

给你 - 一个带有日期时间和数学库的纯 python 解决方案。

这是基于在此处找到的海军天文方程并使用他们自己的计算器进行验证:http://aa.usno.navy.mil/faq/docs/JD_Formula.php

import datetime
import math

def get_julian_datetime(date):
"""
Convert a datetime object into julian float.
Args:
date: datetime-object of date in question

Returns: float - Julian calculated datetime.
Raises:
TypeError : Incorrect parameter type
ValueError: Date out of range of equation
"""

# Ensure correct format
if not isinstance(date, datetime.datetime):
raise TypeError('Invalid type for parameter "date" - expecting datetime')
elif date.year < 1801 or date.year > 2099:
raise ValueError('Datetime must be between year 1801 and 2099')

# Perform the calculation
julian_datetime = 367 * date.year - int((7 * (date.year + int((date.month + 9) / 12.0))) / 4.0) + int(
(275 * date.month) / 9.0) + date.day + 1721013.5 + (
date.hour + date.minute / 60.0 + date.second / math.pow(60,
2)) / 24.0 - 0.5 * math.copysign(
1, 100 * date.year + date.month - 190002.5) + 0.5

return julian_datetime

用法示例:
# Set the same example as the Naval site.
example_datetime = datetime.datetime(1877, 8, 11, 7, 30, 0)
print get_julian_datetime(example_datetime)

关于python-2.7 - 在python中计算朱利安日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31142181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com