用户输入的标准时间转换为儒略时间

User input of standard time converted into Julian Time

我被困在如何将用户输入的年、月、日和小时转换为儒略时间。

如果我在这样的时间编码,这会起作用:

from __future__ import print_function, division
from PyAstronomy import pyasl
import datetime


# Convert calendar date to JD
dt = datetime.datetime(2017, 5, 23, 10)
print("Input date: ", dt)
print("Corresponding Julian date: ", pyasl.jdcnv(dt))
print("Corresponding reduced Julian date: ", pyasl.juldate(dt))
print()

但是当我尝试这样的用户输入时

from __future__ import print_function, division
from PyAstronomy import pyasl
import datetime

# Convert calendar date to JD

year = int(input('Enter a year'))
month = int(input('Enter a month'))
day = int(input('Enter a day'))
hour = int(input('Enter hour'))
dt = datetime.date(year, month, day, hour)
print("Input date: ", dt)
print("Corresponding Julian date: ", pyasl.jdcnv(dt))
print("Corresponding reduced Julian date: ", pyasl.juldate(dt))
print()

我收到错误

TypeError                                 Traceback (most recent call 
last)
<ipython-input-4-2b1701814572> in <module>()
     11 day = int(input('Enter a day'))
     12 hour = int(input('Enter hour'))
---> 13 dt = datetime.date(year, month, day, hour)
     14 print("Input date: ", dt)
     15 print("Corresponding Julian date: ", pyasl.jdcnv(dt))

类型错误:函数最多接受 3 个参数(给定 4 个)

你在第二个例子中写错了代码:

dt = datetime.date(year, month, day, hour)

正确的是:

dt = datetime.datetime(year, month, day, hour)