これらのルーチンは次の関数を実行します。
標準バージョン: システム時間を整数値 (0 GMT 1970/1/1 を起点とした秒数) として読み取る VMS バージョン: VMS バージョン: システム時間を文字 (hh:mm:ss) として読み取る |
|
システム時間を ASCII 文字列に変換する |
|
システム時間を現地時間の月、日などに分解する |
|
システム時間を GMT の月、日などに分解する |
time() は、次のように呼び出します。
INTEGER*4 time または INTEGER*8 n = time() Standard Version |
|||
戻り値 |
INTEGER*4 |
出力 |
0: 0: 0 GMT 1970/1/1 を起点とした秒数 |
INTEGER*8 |
出力 |
64 ビット環境では、time は INTEGER*8 の値を戻す |
関数 time() は、グリニッジ時間で 1970 年 1 月 1 日 00 時 00 分 00 秒からの時間を秒数で示す整数を返します。これはオペレーティングシステム時計の値です。
例: time() - オペレーティングシステムに付属する標準バージョン
demo% cat ttime.f INTEGER*4 n, time n = time() write(*,*) '1970/1/1 0 時 GMT からの秒数 = ', n end demo% f95 ttime.f demo% a.out 1970/1/1 0 時 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 ビット用と同じです。
32 ビット環境で INTEGER*8 の stime を指定して ctime64 を使用すると、stime の値が INTEGER*4 の範囲を超えている場合、すべてアスタリスク (*) が返されます。 gmtime と ltime の場合、tarray 配列が -1 で埋められます。