| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Octaveの時間値を操作するための一連の関数の核は,標準Cライブラリからの 対応する関数に似ています。これら関数もいくつかは,以下の要素を含む,時 間に関するデータ構造体を使用します。
usec秒以下のマイクロ秒(0-999999)である。
sec分以下の秒(0-61)である。この数値は,うるう秒を説明するために61をとる ことがある。
min時以下の分(0-59)である。
hour深夜からの時(0-23)である。
mday1か月内の日(1-31)である。
mon1月からの月(0-11)である。
year1900年からの年である。
wday日曜日からの曜日(0-6)である。
yday1月1日からの日数(0-365)である。
isdst夏時間のフラグである。
zoneタイムゾーンである。
以下の関数の解説において,この構造体はtm_structとして参照する。
現在の時間を紀元からの秒数として返す。
その紀元は,1970年1月1日00:00:00 CUT(協定世界時)を示す。たとえば,
1997年2月17日月曜日の07:15:06 CUTにおいて,timeによって返される
値は856163706である。
timeから戻る値(あるいは任意の非負の整数)を,ローカル時刻
に変換し,asctimeと同じ文字列を返す。関数ctime (time)
は,asctime (localtime (time))に等しい。以下の例を参照せよ。
ctime (time ()) ⇒ "Mon Feb 17 01:15:06 1997\n" |
関数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
}
|
関数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
}
|
ローカル時刻に対応する時刻構造体を,紀元からの秒数に変換する。 以下に例を示す。
mktime (localtime (time ())
⇒ 856163706
|
以下の5つのフィールドをもつフォーマットを使用して,時刻構造体を文字列に 変換する: Thu Mar 28 08:40:14 1996 以下に例を示す。
asctime (localtime (time ()) ⇒ "Mon Feb 17 01:15:06 1997\n" |
これはctime (time ())と等価である。
時刻構造体を,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)
%s1970年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-)
文字列strを,フォーマットfmtの支配下で,時刻構造体に変換する。
このセクションで解説している残りの関数の大部分は,標準Cライブラリに ちなんだものではない。その中にはMATLABとの互換性のために利用可 能であり,それ以外の関数は有用だという理由で提供しています。
現在の年,月(1-12),日(1-31),時間(0-23),分(0-59)および 秒(0-61)を含むベクトルを返す。以下に例を示す。
clock () ⇒ [ 1993, 8, 20, 4, 56, 1 ] |
関数clockは,gettimeofday関数をもつシステムにおいて
より正確である。
日付をDD-MMM-YY形式の文字列を返す。以下に例を示す。
date () ⇒ "20-Aug-93" |
clockによって返される2値の間の差を(秒で)返す。たとえば,
t0 = clock (); many computations later... elapsed_time = etime (clock (), t0); |
この式は,変数t0をセットしてからの秒数をelapsed_timeに
セットする。
実行中のOctaveセッションによって使用されたCPU時間を返す。1番めの出力
はそのプロセスが実行するのに費やした総時間であり,2番めと3番めの出力
の和に等しい。ここでこれらの出力は,それぞれユーザモードおよびシステ
ムモードでの実行に費やしたCPU秒数である。使用しているシステムがCPU時
間の利用を報告するための方策を持たないならば,その出力値の各々につい
て0を返す。Octaveは起動にいくぶんCPU時間を使用するので,使用した総CPU
時間がゼロでないことを確かめるチェックを行うことにより,cputime
関数が動作しているかどうかを確認をすることは合理的である。
与えられた年yearがうるう年ならば1,そうでなければ0を返す。
もし何も引数を与えなければ,is_leap_yearは今年を使用する。
以下に例を示す。
is_leap_year (2000) ⇒ 1 |
これらの関数は,掛け時計タイマーをセットしたりチェックしたりする。 たとえば,
tic (); 多くの計算を行った後... elapsed_time = toc (); |
この式は,最も最近,関数ticを呼び出したときからの秒数を,
変数elapsed_timeに返す。
プロセスが使用したCPU時間により興味があるならば,かわりにcputime
関数を使用するべきである。ticとtoc関数は,呼び出しの間に
経過した実際の時刻を報告する。この値には,他の作業を処理した時間や,何
もしなかった時間も含んでいる。以下の例を参照せよ。
tic (); sleep (5); toc () ⇒ 5 t = cputime (); sleep (5); cputime () - t ⇒ 0 |
(この例は,CPUタイマがかなり荒い精度であることも示している。)
プログラムの実行を一時中断する。何も引数を付けずに起動すると,Octaveは 何か文字が入力されるまで待機する。数値を引数とすると,与えられた秒数だけ 待機する。たとえば,以下のステートメントはメッセージを表示し,その後, スクリーンをクリアする前に5秒待機する。
fprintf (stderr, "wait please... "); pause (5); clc; |
与えた数値の秒数だけプログラムの実行を一時中断する。
与えられた数値のマイクロ秒(1/1000秒)だけプログラムの実行を一時中断
する。1秒以下の時間のスリープが可能ではないシステムにおいては,
usleepはround (microseconds / 1e6)秒だけ実行を
一時中断する。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated on July, 20 2006 using texi2html 1.76.