[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

34.1 時間ユーティリティ

Octaveの時間値を操作するための一連の関数の核は,標準Cライブラリからの 対応する関数に似ています。これら関数もいくつかは,以下の要素を含む,時 間に関するデータ構造体を使用します。

usec

秒以下のマイクロ秒(0-999999)である。

sec

分以下の秒(0-61)である。この数値は,うるう秒を説明するために61をとる ことがある。

min

時以下の分(0-59)である。

hour

深夜からの時(0-23)である。

mday

1か月内の日(1-31)である。

mon

1月からの月(0-11)である。

year

1900年からの年である。

wday

日曜日からの曜日(0-6)である。

yday

1月1日からの日数(0-365)である。

isdst

夏時間のフラグである。

zone

タイムゾーンである。

以下の関数の解説において,この構造体はtm_structとして参照する。

Loadable Function: time ()

現在の時間を紀元からの秒数として返す。 その紀元は,1970年1月1日00:00:00 CUT(協定世界時)を示す。たとえば, 1997年2月17日月曜日の07:15:06 CUTにおいて,timeによって返される 値は856163706である。

Function File: ctime (t)

timeから戻る値(あるいは任意の非負の整数)を,ローカル時刻 に変換し,asctimeと同じ文字列を返す。関数ctime (time) は,asctime (localtime (time))に等しい。以下の例を参照せよ。

 
ctime (time ())
⇒ "Mon Feb 17 01:15:06 1997\n"

Loadable Function: gmtime (t)

関数timeから返る値(あるいは任意の非負の整数)を与え,CUTに 対応する時刻構造体を返す。以下に例を示す。

 
gmtime (time ())
     ⇒ {
           usec = 0
           year = 97
           mon = 1
           mday = 17
           sec = 6
           zone = CST
           min = 15
           wday = 1
           hour = 7
           isdst = 0
           yday = 47
         }

Loadable Function: localtime (t)

関数timeから返る値(あるいは任意の非負の整数)を与え,ローカル タイムゾーンに対応する時刻構造体を返す。以下に例を示す。

 
localtime (time ())
     ⇒ {
           usec = 0
           year = 97
           mon = 1
           mday = 17
           sec = 6
           zone = CST
           min = 15
           wday = 1
           hour = 1
           isdst = 0
           yday = 47
         }

Loadable Function: mktime (tm_struct)

ローカル時刻に対応する時刻構造体を,紀元からの秒数に変換する。 以下に例を示す。

 
mktime (localtime (time ())
     ⇒ 856163706

Function File: asctime (tm_struct)

以下の5つのフィールドをもつフォーマットを使用して,時刻構造体を文字列に 変換する: Thu Mar 28 08:40:14 1996 以下に例を示す。

 
asctime (localtime (time ())
⇒ "Mon Feb 17 01:15:06 1997\n"

これはctime (time ())と等価である。

Loadable Function: strftime (tm_struct)

時刻構造体を,printfと同様の`%'代入子を用いて柔軟にフォー マットする。ここで述べたものを除き,代入フィールドは固定サイズである; 数値フィールドは必要に応じて詰められる。標準ではゼロで埋める; 1個の 数を表示するフィールドについて,詰め物は,以下に述べる修飾子をもつ `%'によって変更されたり引き継がれる。未知のフィールド指定子は, 通常の文字としてコピーされる。全ての他の文字は,変更なく出力にコピー される。たとえば,以下の例を参照せよ。

 
strftime ("%r (%Z) %A %e %B %Y", localtime (time ()))
     ⇒ "01:15:06 AM (CST) Monday 17 February 1997"

Octaveのstrftime関数は,ANSI Cフィールド指定子の上位互換性を サポートしている。

リテラル文字フィールド:

%

% という文字

n

改行文字

t

タブ文字

数値修飾子(標準にはない拡張):

- (ダッシュ)

フィールドを詰めものをしない

_ (アンダースコア)

フィールドをスペースで埋める

時刻フィールド:

%H

時(00-23)

%I

時(01-12)

%k

時(0-23)

%l

時(1-12)

%M

分(00-59)

%p

ロケールのAMまたはPM

%r

時間,12時間表示(hh:mm:ss [AP]M)

%R

時間,24時間表示(hh:mm)

%s

1970年1月1日00:00:00からの秒(標準にはない拡張)

%S

秒(00-61)

%T

時間,24時間表示(hh:mm:ss)

%X

ロケールの時刻表示(%H:%M:%S)

%Z

タイムゾーン(EDT)あるいはタイムゾーンが決定できなければ何もなし

日付フィールド:

%a

ロケールの短縮曜日名(Sun-Sat)

%A

ロケールの完全曜日名,文字列の長さは異なる(Sunday-Saturday)

%b

ロケールの短縮月名(Jan-Dec)

%B

ロケールの完全月名,文字列の長さは異なる(January-December)

%c

ロケールの日付と時刻(Sat Nov 04 12:02:33 EST 1989)

%C

世紀(00-99)

%d

日(01-31)

%e

日( 1-31)

%D

日付(mm/dd/yy)

%h

%bに同じ

%j

この年の何日目か(001-366)

%m

月(01-12)

%U

日曜日を週の初めとするとき,何週目か(00-53)

%w

この週の何日目か(0-6)

%W

月曜日を週の初めとするとき,何週目か(00-53)

%x

ロケールの日付表記(mm/dd/yy)

%y

年の下2桁(00-99)

%Y

年(1970-)

Loadable Function: [tm_struct, nchars] = strptime (str, fmt)

文字列strを,フォーマットfmtの支配下で,時刻構造体に変換する。

このセクションで解説している残りの関数の大部分は,標準Cライブラリに ちなんだものではない。その中にはMATLABとの互換性のために利用可 能であり,それ以外の関数は有用だという理由で提供しています。

Function File: clock ()

現在の年,月(1-12),日(1-31),時間(0-23),分(0-59)および 秒(0-61)を含むベクトルを返す。以下に例を示す。

 
clock ()
⇒ [ 1993, 8, 20, 4, 56, 1 ]

関数clockは,gettimeofday関数をもつシステムにおいて より正確である。

Function File: date ()

日付をDD-MMM-YY形式の文字列を返す。以下に例を示す。

 
date ()
⇒ "20-Aug-93"

Function File: etime (t1, t2)

clockによって返される2値の間の差を(秒で)返す。たとえば,

 
t0 = clock ();
 many computations later...
elapsed_time = etime (clock (), t0);

この式は,変数t0をセットしてからの秒数をelapsed_timeに セットする。

Function File: [total, user, system] = cputime ();

実行中のOctaveセッションによって使用されたCPU時間を返す。1番めの出力 はそのプロセスが実行するのに費やした総時間であり,2番めと3番めの出力 の和に等しい。ここでこれらの出力は,それぞれユーザモードおよびシステ ムモードでの実行に費やしたCPU秒数である。使用しているシステムがCPU時 間の利用を報告するための方策を持たないならば,その出力値の各々につい て0を返す。Octaveは起動にいくぶんCPU時間を使用するので,使用した総CPU 時間がゼロでないことを確かめるチェックを行うことにより,cputime 関数が動作しているかどうかを確認をすることは合理的である。

Function File: is_leap_year (year)

与えられた年yearがうるう年ならば1,そうでなければ0を返す。 もし何も引数を与えなければ,is_leap_yearは今年を使用する。 以下に例を示す。

 
is_leap_year (2000)
⇒ 1

Function File: tic ()
Function File: toc ()

これらの関数は,掛け時計タイマーをセットしたりチェックしたりする。 たとえば,

 
tic ();
 多くの計算を行った後...
elapsed_time = toc ();

この式は,最も最近,関数ticを呼び出したときからの秒数を, 変数elapsed_timeに返す。

プロセスが使用したCPU時間により興味があるならば,かわりにcputime 関数を使用するべきである。tictoc関数は,呼び出しの間に 経過した実際の時刻を報告する。この値には,他の作業を処理した時間や,何 もしなかった時間も含んでいる。以下の例を参照せよ。

 
tic (); sleep (5); toc ()
⇒ 5
t = cputime (); sleep (5); cputime () - t
⇒ 0

(この例は,CPUタイマがかなり荒い精度であることも示している。)

Built-in Function: pause (seconds)

プログラムの実行を一時中断する。何も引数を付けずに起動すると,Octaveは 何か文字が入力されるまで待機する。数値を引数とすると,与えられた秒数だけ 待機する。たとえば,以下のステートメントはメッセージを表示し,その後, スクリーンをクリアする前に5秒待機する。

 
fprintf (stderr, "wait please...
");
pause (5);
clc;

Built-in Function: sleep (seconds)

与えた数値の秒数だけプログラムの実行を一時中断する。

Built-in Function: usleep (microseconds)

与えられた数値のマイクロ秒(1/1000秒)だけプログラムの実行を一時中断 する。1秒以下の時間のスリープが可能ではないシステムにおいては, usleepround (microseconds / 1e6)秒だけ実行を 一時中断する。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated on July, 20 2006 using texi2html 1.76.