用户输入的标准时间转换为Julian Time

时间:2017-10-11 02:40:03

标签: python python-2.7 datetime julian-date

我坚持如何将用户输入的年,月,日和小时转换为Julian时间。

如果我在这样的时间编码,这是有效的:

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))

TypeError:函数最多需要3个参数(给定4个)

1 个答案:

答案 0 :(得分:1)

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

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

正确的是:

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