Sun Studio 12: Fortran ライブラリ・リファレンス

1.4.51 timectimeltimegmtime: システム時間の取得

これらのルーチンは次の関数を実行します。

time

標準バージョン: システム時間を整数値 (0 GMT 1970/1/1 を起点とした秒数) として読み取る

VMS バージョン: VMS バージョン: システム時間を文字 (hh:mm:ss) として読み取る 

ctime

システム時間を ASCII 文字列に変換する 

ltime

システム時間を現地時間の月、日などに分解する 

gmtime

システム時間を GMT の月、日などに分解する 

1.4.51.1 time: システム時間の取得

time() は、次のように呼び出します。

INTEGER*4 time または INTEGER*8

n = time() Standard Version

戻り値 

INTEGER*4

出力 

0: 0: 0 GMT 1970/1/1 を起点とした秒数 

 

INTEGER*8

出力 

64 ビット環境では、timeINTEGER*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%

1.4.51.2 ctime: システム時間を文字に変換

関数 ctime は、システム時間 stime を変換して、24 文字の ASCII 文字列として返します。

関数は、次のように呼び出します。

CHARACTER ctime*24

string = ctime( stime )

stime

INTEGER*4

入力 

time() で読み取ったシステム時間 (標準バージョン)

戻り値 

character*24

出力 

文字列に変換されたシステム時間。ctimestringcharacter*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%

1.4.51.3 ltime: システム時間の月、日など (現地時間) への分解

このルーチンはシステム時間を現地時間の月、日などに分解します。

サブルーチンは、次のように呼び出します。

call ltime( stime, tarray )

stime

INTEGER*4

入力 

time() で読み取ったシステム時間 (標準バージョン)

tarray

INTEGER*4(9)

出力 

現地時間の日、月、年、... に分解されたシステム時間 

tarray の要素の意味については、次のセクションを参照してください。

例: ltime():


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%

1.4.51.4 gmtime: システム時間の月、日など (GMT) への分解

このルーチンはシステム時間を GMT の月、日などに分解します。

サブルーチン

call gmtime( stime, tarray )

stime

INTEGER*4

入力 

time() で読み取ったシステム時間 (標準バージョン)

tarray

INTEGER*4(9)

出力 

GMT の日、月、年、... に分解されたシステム時間 

例: gmtime:


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%

次に ltimegmtimetarray() の値 (インデックス、単位、範囲) を示します。

秒 (0 - 61) 

分 (0 - 59) 

時間 (0 - 23) 

日 (1 - 31) 

月 (0 - 11) 

年 - 1900 

曜日 (日曜 = 0) 

日 (通年) (0 - 365) 

夏時間: 夏時間が有効な場合、1 

これらの値は、C ライブラリルーチン ctime(3C) で定義されています。システムが 59 を超える秒を返す理由についてもここで説明されています。参照: idate(3F)、および fdate(3F).

1.4.51.5 ctime64gmtime64ltime64: 64 ビット環境用のシステム時間ルーチン

これらは、ctimegmtimeltime の対応するバージョンで、64 ビット環境での移植性を実現します。変数 stimeINTEGER*8 であることを除けば、これらのルーチンは 32 ビット用と同じです。

32 ビット環境で INTEGER*8stime を指定して ctime64 を使用すると、stime の値が INTEGER*4 の範囲を超えている場合、すべてアスタリスク (*) が返されます。 gmtimeltime の場合、tarray 配列が -1 で埋められます。