gpt4 book ai didi

Python Ephem/Datetime 计算

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:31 24 4
gpt4 key购买 nike

输出应将第一个日期处理为“日”,将第二个日期处理为“夜”。我已经玩了几个小时了,不知道我做错了什么。有什么想法吗?

编辑我认为问题是由于我的日期比较实现造成的

输出:

$ python time_of_day.py
* should be day:
event date: 2010/4/6 16:00:59
prev rising: 2010/4/6 09:24:24
prev setting: 2010/4/5 23:33:03
next rise: 2010/4/7 09:22:27
next set: 2010/4/6 23:34:27
day
* should be night:
event date: 2010/4/6 00:01:00
prev rising: 2010/4/5 09:26:22
prev setting: 2010/4/5 23:33:03
next rise: 2010/4/6 09:24:24
next set: 2010/4/6 23:34:27
day

time_of_day.py

import datetime
import ephem # install from http://pypi.python.org/pypi/pyephem/

#event_time is just a date time corresponding to an sql timestamp
def type_of_light(latitude, longitude, event_time, utc_time, horizon):

o = ephem.Observer()
o.lat, o.long, o.date, o.horizon = latitude, longitude, event_time, horizon

print "event date ", o.date

print "prev rising: ", o.previous_rising(ephem.Sun())
print "prev setting: ", o.previous_setting(ephem.Sun())
print "next rise: ", o.next_rising(ephem.Sun())
print "next set: ", o.next_setting(ephem.Sun())


if o.previous_rising(ephem.Sun()) <= o.date <= o.next_setting(ephem.Sun()):
return "day"
elif o.previous_setting(ephem.Sun()) <= o.date <= o.next_rising(ephem.Sun()):
return "night"
else:
return "error"


print "should be day: ", type_of_light('45.959','-66.6405','2010/4/6 16:01','-4', '-6')

print "should be night: ", type_of_light('45.959','-66.6405','2010/4/6 00:01','-4', '-6')

最佳答案

o.date 总是在 o.previous_settings 和 o.next_rising 之间 ;),所以你可以这样检查:

if o.previous_rising(ephem.Sun()) > o.previous_setting(ephem.Sun()):
return "day"
elif:
return "night"

关于Python Ephem/Datetime 计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587640/

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