有人可以帮我吗?
我正在使用Flatlib计算行星位置,但是用于输入计算日期和时间的代码是固定的,因此您每次都必须对其进行更新。
是否有一种方法可以使用datetime.now()
[或另一种方法]自动完成Datetime()
中的字段?我无法在date = Datetime()
中获取代码来接受任何形式的datetime
代码。
我希望获得Datetime()
来接受月/日/年和小时:分钟:秒格式,例如(08/24/2018,21:17:00)
使用以下代码,我得到以下错误:
C:\ Users \ famil> C:\ Users \ famil \ Desktop \ flatlib_working_degree.py (“ {0.month} / {0.day} / {0.year}”,“ 21:15:41”) 追溯(最近一次通话): 在第13行的文件“ C:\ Users \ famil \ Desktop \ flatlib_working_degree.py” 日期=日期时间(x) init 中的文件“ C:\ Users \ famil \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ flatlib \ datetime.py”,行177 self.date =日期(日期,日历) init 中的文件“ C:\ Users \ famil \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ flatlib \ datetime.py”,第76行 self.jdn = int(值) TypeError:int()参数必须是字符串,类似字节的对象或数字,而不是“元组”
from flatlib.datetime import Datetime
from flatlib.geopos import GeoPos
from flatlib.chart import Chart
from flatlib import const
import datetime
# set date and time to now
now = datetime.datetime.now()
x = '{0.month}/{0.day}/{0.year}, {0.hour}:{0.minute}:{0.second}'.format(now)
print(x)
date = Datetime(x)
pos = GeoPos('53n15', '2e31')
chart = Chart(date, pos, hsys=const.HOUSES_PLACIDUS, IDs=const.LIST_OBJECTS)
# calculate body and degree value
asc = chart.get(const.ASC)
print(asc, asc.lon)
sun = chart.get(const.SUN)
print(sun, sun.lon, sun.movement())
moon = chart.get(const.MOON)
答案 0 :(得分:1)
Flatlib的日期时间需要两个单独的输入来输入日期和时间,您可以在此处进行检查:Github: flatlib/datetime.py
def __init__(self, date, time=0, utcoffset=0, calendar=GREGORIAN):
但是您的代码只有 datetime 1个参数,以逗号分隔。那是不正确的:
now = datetime.datetime.now()
date = Datetime(now.strftime("%Y/%m/%d, %H:%M"))
您应该这样写:
now = datetime.datetime.now()
date = Datetime(now.strftime("%Y/%m/%d"), now.strftime('%H:%M'))