对python有些陌生,但尝试将其用于卫星轨道分析。我真的没有得到datetime对象和方法。我希望能够将datetime对象传递给接受参数的函数,该函数的格式与datetime基本相同(年、周一、日、小时、分、秒)。下面的代码可以工作,但是有一个更好的方法。请开导我。谢谢!在
import jday
import datetime
jdate = jday.JD(2015,12,1,22,8,0) # example
now1 = datetime.datetime.now().strftime("%Y,%m,%d,%H,%M,%S")
now2 = now1.split(",")
now3 = [int(i) for i in now2]
jdatenow = jday.JD(*now3)
print jdatenow
jday模块是从davidvallado的天体动力学源代码Matlab移植过来的。在
^{pr2}$
如果您已经移植了JD代码,并因此可以将其作为模块jday来控制,那么您可能正在寻找一个decorator。这有一个明显的好处,即不会破坏函数的原始签名(对于现有的客户机代码),但是根据您的请求添加了日期参数的便利性。在
jday()与jday()相同,但它也直接接受jday>模块。如果不需要向后兼容,这是最简单的解决方案。在
请参阅下面的工作示例代码:
日.py
jday2.py
^{pr2}$和示例客户端代码:
客户端.py
您可以不使用
math.floor()
重写它:您可以简化它;如果您使用
^{pr2}$datetime
算术:要将
datetime
对象传递给jdate()
,可以使用.timetuple()
方法:另外,如果需要,可以使用
dt.year
、dt.month
、dt.day
等属性。在输出
根据IERS web-site where a recommended "Julian Date" definition is provided,这是正确的。在
对于1900年3月之前和2100年2月之后的日期,公式得出了不同的结果:
输出
你问题中的公式认为}库在这里产生相同的结果。在
jdate()
,1900
,2100
是闰年。datetime
实现、astropy
和{注意:Julianday是一个整数。
JD()
计算包含一天的分数的Julian日期,请参见definitions in the links。在正如链接讨论中提到的,您应该使用已经制作好的库,并在必要时发送补丁,而不是重新设计轮子,以避免由于闰年、浮点问题、错误的时间刻度、儒略日定义上的细微差异等而产生的简单错误
不幸的是,不能将datetime对象直接传递给需要整数的函数。有什么特别的原因不能用datetime提供的字段调用函数?在
或者,如果这太麻烦了,总结一下:
^{pr2}$这可能比
相关问题 更多 >
编程相关推荐