IDL能够加/减日期吗?

时间:2017-01-31 16:51:00

标签: idl-programming-language

正如您可以看到上述问题,我想知道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

我一直在寻找这个问题的解决方案,但遗憾的是我找不到任何解决方案。

注意: 我使用的是正常的日历日期,而不是朱利安日期。

2 个答案:

答案 0 :(得分:2)

您是否只关注1582年后的日期?第二个重要的准确性是什么?

ANYTIM例程不是IDL分发的一部分。可能有第三方例程来处理时间增量,但我不知道IDL库中有任何内置函数。

默认情况下,您使用的是ANYTIM,从1979年1月1日开始返回秒数。因此,要添加/减去一些天,周或年,您可以计算时间间隔内的秒数。当然,这并没有考虑到闰秒/年(但闰年相当容易考虑,闰秒需要一个数据库,当它们被添加时)。添加月份需要确定哪个月,以确定其中的天数。

答案 1 :(得分:1)

IDL可以使用JULDAYCALDAT与Julian日期进行转换。

您还可以使用format关键字向PRINTSTRINGREADS读取和写入字符串中的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