【IDL】日期和时间函数
IDL中包含了日期和时间函数,通过这些函数可以获取当前系统时间,进行日期时间转换或求特定条件下的日期。日期和时间的函数如下表
函数名称 |
功能描述 |
BIN_DATE |
标准日期时间字符串转换成6元素日期数组 |
CALDAT |
儒略日转为年月日 |
CALENDAR |
根据输入日期显示日历 |
JULDAY |
年月日转为儒略日 |
SYSTIME |
返回当前系统时间 |
TIMEGEN |
获取儒略日格式的数组 |
应用举例:
IDL> ;获取当前系统时间,输出为字符串形式
IDL> print,systime()
Wed Aug 22 21:20:52 2012
IDL> ;获取当前系统时间,转换为年月日时分的形式,2012年8月22日21时23分35秒
IDL> print,bin_date(systime())
2012 8 22
21 23 35
IDL> ;获取当前系统时间,儒略日形式输出
IDL> print,systime(/julian)
2456162.4
IDL> ;当前儒略日日期转换年月日时分,2012年8月22日21时26分58.000035秒
IDL> caldat,systime(/julian),month,day,year,hour,min,sec
IDL> print,month,day,year,hour,min,sec
8 22 2012 21 26 58.000035
IDL> ;年月日时分格式转换为儒略日,2012年8月22日
IDL> print,julday(8,22,2012)
2456162
IDL> ;计算两个日期差多少天,如求2007年7月30日至2012年8月22日有多少天
IDL> print,julday(8,22,2012)-julday(7,30,2007)
1850
IDL> ;年月日时分格式转换为儒略日,2012年8月22日21时26分58秒
IDL> print,julday(8,22,2012,21,26,58)
2456162.4
IDL> ;计算从2007年7月30日起,第1850天是哪一年哪月哪日?
IDL> caldat,julday(7,30,2007)+1850,month,day,year
IDL> print,month,day,year
8 22 2012
IDL> ;获取当前系统时间,秒制形式输出
IDL> print,systime(/seconds)
1.3456417e+009
IDL> ;获取当前系统时间,秒制形式输出,与上面一样
IDL> print,systime(1)
1.3456417e+009
IDL> ;统计程序运行前后时间差的方法
IDL> starttime = systime(1)
IDL> endtime = systime(1)
IDL> print,'花费时间:',endtime - starttime
花费时间: 7.7220001
IDL> ;统计以月为单位从2000年1月1日起至今,每隔3月一次的所有记录
IDL> MyTimes = TIMEGEN(START=JULDAY(1,1,2000), FINAL=systime(/julian), UNITS='month',step =3)
IDL> help,mytimes
MYTIMES DOUBLE = Array[51]
IDL> ;将统计的儒略日结果转换为年月日
IDL> caldat,mytimes,mons,days,years
IDL> ;输出查看前5组数据的年月
IDL> for i=0,4 do print,StrTrim(years[i],2)+':'+Strtrim(mons[i],2)
2000:1
2000:4
2000:7
2000:10
2001:1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界