正如您可以看到上述问题,我想知道IDL是否能够在给定日期添加或减去天/月/年。
例如:
given_date = anytim('01-jan-2000')
print, given_date
2000年1月1日00:00:00.000
如果我要在 given_date 中添加2周,则应显示此日期:
2000年1月15日00:00:00.000
我一直在寻找这个问题的解决方案,但遗憾的是我找不到任何解决方案。
注意: 我使用的是正常的日历日期,而不是朱利安日期。
答案 0 :(得分:2)
您是否只关注1582年后的日期?第二个重要的准确性是什么?
ANYTIM
例程不是IDL分发的一部分。可能有第三方例程来处理时间增量,但我不知道IDL库中有任何内置函数。
默认情况下,您使用的是ANYTIM
,从1979年1月1日开始返回秒数。因此,要添加/减去一些天,周或年,您可以计算时间间隔内的秒数。当然,这并没有考虑到闰秒/年(但闰年相当容易考虑,闰秒需要一个数据库,当它们被添加时)。添加月份需要确定哪个月,以确定其中的天数。
答案 1 :(得分:1)
IDL可以使用JULDAY和CALDAT与Julian日期进行转换。
您还可以使用format
关键字向PRINT,STRING和READS读取和写入字符串中的Julian日期(双倍或长整数)
您想要使用(C())
calendar date format code。
format='(c(cdi0,"-",cMoa,"-"cyi04," ",cHi02,":",cmi02,":",csf06.3))'
date = julday(1, 1, 2000)
print, date, format=format
; 1-Jan-2000 00:00:00.000
date = date + 14
print, date, format=format
; 15-Jan-2000 00:00:00.000