这是一个 2000 年安全的 Fortran 95 内例程。
子例程 date_and_time 返回实时时钟和日期的相关数据。返回数据包括本地时间以及本地时间与通用协调时间 (Universal Coordinated Time, UTC) 之间的时差,通用协调时间也称为格林威治标准时间 (Greenwich Mean Time, GMT)。
子例程 date_and_time() 的调用方式如下:
call date_and_time( date , time, zone, values ) |
|||
date |
CHARACTER*8 |
输出 |
以 CCYYMMDD 格式表示的日期,其中 CCYY 表示四位数的年份,MM 表示两位数的月份,DD 表示两位数的当月日期。例如:19980709 |
time |
CHARACTER*10 |
输出 |
以 hhmmss.sss 格式表示的当前时间, 其中 hh 表示小时,mm 表示分钟,ss.sss 表示秒和毫秒。 |
zone |
CHARACTER*5 |
输出 |
与 UTC 的时差,以小时数和分钟数表示,采用 hhmm 格式。 |
values |
INTEGER*4 VALUES(8) |
输出 |
下面介绍的 8 个元素组成的整数数组。 |
INTEGER*4 values 数组中返回的 8 个值为
VALUES(1) |
以 4 位整数表示的年份。例如:1998。 |
VALUES(2) |
以从 1 到 12 的整数表示的月份。 |
VALUES(3) |
以从 1 到 31 的整数表示的当月日期。 |
VALUES(4) |
以分钟数表示的与 UTC 的时差。 |
VALUES(5) |
以从 1 到 23 的整数表示的当天小时时间。 |
VALUES(6) |
以从 1 到 59 的整数表示的一个小时中的分钟时间。 |
VALUES(7) |
以从 0 到 60 的整数表示的一分钟中的秒数。 |
VALUES(8) |
位于范围 0 至 999 中的毫秒数。 |
date_and_time 使用示例:
demo% cat dtm.f integer date_time(8) character*10 b(3) call date_and_time(b(1), b(2), b(3), date_time) print *,’date_time array values:’ print *,’year=’,date_time(1) print *,’month_of_year=’,date_time(2) print *,’day_of_month=’,date_time(3) print *,’time difference in minutes=’,date_time(4) print *,’hour of day=’,date_time(5) print *,’minutes of hour=’,date_time(6) print *,’seconds of minute=’,date_time(7) print *,’milliseconds of second=’,date_time(8) print *, ’DATE=’,b(1) print *, ’TIME=’,b(2) print *, ’ZONE=’,b(3) end |
2000 年 2 月 16 日在美国加利福尼亚的一台计算机上运行该例程时,输出结果如下所示:
date_time array values: year= 2000 month_of_year= 2 day_of_month= 16 time difference in minutes= -420 hour of day= 11 minutes of hour= 49 seconds of minute= 29 milliseconds of second= 236 DATE=20000216 TIME=114929.236 ZONE=-0700 |