这些例程具有以下函数:
标准版本:获取以整数表示的系统时间(自 GMT 1970 年 1 月 1 日 0 时起至今的秒数) VMS 版本:获取以字符表示的系统时间 (hh:mm:ss) |
|
将系统时间转换为 ASCII 字符串。 |
|
将系统时间分解成当地时间的月份、日期等等。 |
|
将系统时间分解成 GMT 时间的月份、日期等等。 |
time() 函数的调用方式如下所示:
INTEGER*4 time 或 INTEGER*8 n = time() 标准版本 |
|||
返回值 |
INTEGER*4 |
输出 |
自 GMT 1970 年 1 月 1 日 0:0:0 时起至今的时间(秒) |
INTEGER*8 |
输出 |
在 64 位环境中,time 返回 INTEGER*8 值 |
函数 time() 返回自 GMT 1970 年 1 月 1 日 00:00:00 起至今的时间(秒)整数。这是操作系统时钟值。
示例:在操作系统中使用的 time() 标准版本:
demo% cat ttime.f INTEGER*4 n, time n = time() write(*,*) ’Seconds since 0 1/1/70 GMT = ’, n end demo% f95 ttime.f demo% a.out Seconds since 0 1/1/70 GMT = 913240205 demo% |
函数 ctime 转换系统时间 stime,并以由 24 个字符组成的 ASCII 字符串返回该值。
该函数的调用方式如下所示:
CHARACTER ctime*24 string = ctime( stime ) |
|||
stime |
INTEGER*4 |
输入 |
通过 time()(标准版本)获得的系统时间 |
返回值 |
character*24 |
输出 |
以字符串表示的系统时间。ctime 和 string 声明为 character*24。 |
下面的示例中显示了 ctime 返回值的格式。ctime(3C) 手册页中对此进行了介绍。
示例:ctime():
demo% cat tctime.f character*24 ctime, string INTEGER*4 n, time n = time() string = ctime( n ) write(*,*) ’ctime: ’, string end demo% f95 tctime.f demo% a.out ctime: Wed Dec 9 13:50:05 1998 demo% |
该子例程的调用方式如下所示:
call ltime( stime, tarray ) |
|||
stime |
INTEGER*4 |
输入 |
通过 time()(标准版本)获得的系统时间 |
tarray |
INTEGER*4(9) |
输出 |
当地系统时间,包括年份、月份、日期等 |
有关 tarray 中各元素的含义,请参见下一节。
demo% cat tltime.f integer*4 stime, tarray(9), time stime = time() call ltime( stime, tarray ) write(*,*) ’ltime: ’, tarray end demo% f95 tltime.f demo% a.out ltime: 25 49 10 12 7 91 1 223 1 demo% |
该例程将系统时间分解成 GMT 时间的月份、日期等。
此子例程的调用方式如下所示:
call gmtime( stime, tarray ) |
|||
stime |
INTEGER*4 |
输入 |
通过 time()(标准版本)获得的系统时间 |
tarray |
INTEGER*4(9) |
输出 |
GMT 系统时间,包括年份、月份、日期等 |
demo% cat tgmtime.f integer*4 stime, tarray(9), time stime = time() call gmtime( stime, tarray ) write(*,*) ’gmtime: ’, tarray end demo% f95t tgmtime.f demo% a.out gmtime: 12 44 19 18 5 94 6 168 0 demo% |
下面是 ltime 和 gmtime 的 tarray() 值:索引、单位和范围:
1 2 3 4 5 |
秒 (0 - 61) 分钟 (0 - 59) 小时 (0 - 23) 一个月中的天数 (1 - 31) 自一月起的月份 (0 - 11) |
6 7 8 9 |
年份-1900 星期几(星期日= 0) 一年中的天数 (0 - 365) 夏令时,如果实行夏令时,则为 1。 |
C 库例程 ctime(3C) 对这些值进行了定义,它解释了系统可能会返回值大于 59 的秒数的原因。另请参见:idate(3F) 和 fdate(3F)。
这些是例程 ctime、gmtime 和 ltime 的对应版本,用于在 64 位环境中进行移植。除了输入变量 stime 必须是 INTEGER*8 之外,它们与这些例程相同。
在 32 位环境中使用且 stime 为 INTEGER*8 时,如果 stime 值超出 INTEGER*4 范围,ctime64 的返回值全是星号,而 gmtime 和 ltime 在 tarray 数组中填入 -1。