IDL 是否能够从日期中添加/减去?
Is IDL able to add / subtract from date?
正如您看到上面的问题,我想知道 IDL 是否能够在给定日期上加上或减去天数/月数/年数。
例如:
given_date = anytim('01-jan-2000')
print, given_date
1-Jan-2000 00:00:00.000
如果我要在 given_date 上加上 2 周,那么这个日期应该出现:
15-Jan-2000 00:00:00.000
我已经在寻找这个问题的解决方案,但遗憾的是找不到任何解决方案。
注:
我使用的是普通日历日期,而不是儒略日期。
您是否只关心 1582 年之后的日期?精确到秒重要吗?
ANYTIM
例程不是 IDL 分发的一部分。可能有第三方例程来处理时间增量,但我不知道 IDL 库有任何内置函数。
默认情况下,您使用的是从 1979 年 1 月 1 日起的 ANYTIM
returns 秒。因此 add/subtract 一些天数、周数或年数,您可以计算时间间隔中的秒数。当然,这并没有考虑闰年 seconds/years(但闰年很容易考虑,闰秒需要一个添加日期的数据库)。并且添加月份将需要确定哪个月份,从而确定其中的天数。
与 Julian 日期相互转换
您还可以使用 format
关键字到 PRINT, STRING, and 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
正如您看到上面的问题,我想知道 IDL 是否能够在给定日期上加上或减去天数/月数/年数。
例如:
given_date = anytim('01-jan-2000')
print, given_date
1-Jan-2000 00:00:00.000
如果我要在 given_date 上加上 2 周,那么这个日期应该出现:
15-Jan-2000 00:00:00.000
我已经在寻找这个问题的解决方案,但遗憾的是找不到任何解决方案。
注: 我使用的是普通日历日期,而不是儒略日期。
您是否只关心 1582 年之后的日期?精确到秒重要吗?
ANYTIM
例程不是 IDL 分发的一部分。可能有第三方例程来处理时间增量,但我不知道 IDL 库有任何内置函数。
默认情况下,您使用的是从 1979 年 1 月 1 日起的 ANYTIM
returns 秒。因此 add/subtract 一些天数、周数或年数,您可以计算时间间隔中的秒数。当然,这并没有考虑闰年 seconds/years(但闰年很容易考虑,闰秒需要一个添加日期的数据库)。并且添加月份将需要确定哪个月份,从而确定其中的天数。
您还可以使用 format
关键字到 PRINT, STRING, and READS.
您需要使用 (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