システム情報†

7 個の関数。

GETTIME†

書式†

GETTIME( [ sec [, timezone ] ] )

引数†

Parameter Description
sec (省略可)EPOCH(1970年1月1日 00:00:00 UTC)からの経過秒数(整数)。省略時は現在のシステム時刻を返す
timezone (省略可)日時を求めるタイムゾーン。省略時はOSのローカルタイム(タイムゾーンの指定)

戻り値†

以下の構造を持つ汎用配列:

インデックス 値 詳細
0 年 西暦
1 月 月
2 日 日
3 曜日 0〜6(0=日曜日)
4 時 24時間表記
5 分 分
6 秒 秒
7 年内経過日数 年始からの経過日数(1月1日が0)
8 夏時間フラグ 0=標準時 / 1=夏時間

sec が扱える範囲(約±9億年)を超えているときは、警告 W0012(GETLASTERROR は 12)を出して -1 を返す。

解説†

現在の日付・時刻情報を取得する。timezone を省略したときは、C言語の localtime 関数と同等の動作をする。

sec を指定した場合はその秒数をEPOCHからの経過時間として解釈し、対応する日時情報を返す。GETSECCOUNTと組み合わせることで、例えば10日後の日付を計算するといった用途に使える。

ローカルタイムの夏時間は、sec の時点の規則で判定する(今の時刻の夏時間かどうかではない)。

タイムゾーンの指定†

timezone には次のいずれかを指定する。

指定 意味
省略、""、"local" OSのローカルタイム
"UTC"、"GMT"、"Z" UTC
"+09:00"、"+0900"、"+09"、"-5" UTCからの固定のオフセット(時間・分。東が正)
"JST"、"EST"、"EDT"、"CST"、"CDT"、"MST"、"MDT"、"PST"、"PDT" 名前で固定のオフセット
整数 UTCからの固定のオフセット(秒、東が正。32400 は +09:00)。±24時間未満

固定のオフセットを指定したときは夏時間を考慮せず、夏時間フラグ(インデックス8)は常に0になる。解釈できない指定は警告 W0012(GETLASTERROR は 12)を出し、ローカルタイムとして扱う。

使用例†

現在時刻の sec は GETSECCOUNT で取得できる。これを活用すると、「今現在から○日後 / 前の時刻」を手軽に計算できる。

//10日後は何月何日?
_array = GETTIME()
"今は%(_array[0])年%(_array[1])月%(_array[2])日 %(_array[4])時%(_array[5])分%(_array[6])秒/"
--
_array = GETTIME(GETSECCOUNT(_array[0],_array[1],_array[2] + 10,0,_array[4],_array[5],_array[6]))
"10日後は%(_array[0])年%(_array[1])月%(_array[2])日 %(_array[4])時%(_array[5])分%(_array[6])秒\n"
// UTCでの日時
_utc = GETTIME(GETSECCOUNT(), 'UTC')

// 1970/1/1 00:00:00 UTC は、日本時間(+09:00)では 9時
_jst = GETTIME(0, '+09:00')      // 1970,1,1,4,9,0,0,0,0

互換性†

関連項目†


GETTIMEZONE†

書式†

GETTIMEZONE( [ sec ] )

引数†

Parameter Description
sec (省略可)EPOCH(1970年1月1日 00:00:00 UTC)からの経過秒数(整数)。省略時は現在のシステム時刻

戻り値†

以下の構造を持つ汎用配列:

インデックス 値 詳細
0 UTCからのオフセット 秒。東が正(日本は 32400)。夏時間のときは夏時間を含めた値
1 夏時間フラグ 0=標準時 / 1=夏時間
2 名前 Windows: OSの表示名(日本語環境なら 東京 (標準時))。Linux / macOS: 略称(JST、EDT など)
3 IANAの名前 Asia/Tokyo のような名前。取得できないときは空文字列(GETSETTING の coreinfo.timezone と同じ)

sec が扱える範囲(約±9億年)を超えているときは、警告 W0012(GETLASTERROR は 12)を出して -1 を返す。

解説†

OSのローカルタイムゾーンについて、sec の時点での情報を返す。夏時間があるタイムゾーンでは、夏時間かどうか・オフセットは sec の時点の規則で決まる。

インデックス0のオフセットは、GETTIME / GETSECCOUNT がローカルタイムとして扱うときの差と同じ。

使用例†

// 今のローカルタイムゾーン
_tz = GETTIMEZONE()
_tz[0]   // 32400
_tz[3]   // 'Asia/Tokyo'

// 夏時間のある地域で、ある日時のオフセット(秒)を求める
GETTIMEZONE(GETSECCOUNT(2024, 7, 1, 0, 12, 0, 0))[0]

互換性†

関連項目†


GETTICKCOUNT†

書式†

GETTICKCOUNT( [ flag ] )

引数†

Parameter Description
flag 現在は実質的な意味を持たない。歴史的には0以外の値を指定すると GetTickCount() >> 31 の第32ビット値を返し、長時間計測に使われていた

戻り値†

OSが起動してからの経過時間(ミリ秒単位)

解説†

OSが起動してからの経過時間をミリ秒単位で返す。

Windows XP以前では約24日20時間で0にリセットされる。Vista以降や他のOSではその制約はない。

互換性†

関連項目†


GETSECCOUNT†

書式†

GETSECCOUNT( [yyyy|datetext [, mm [, dd [, wd [, HH [, MM [, SS [, timezone]]]]]]]] )

引数†

Parameter Description
yyyy 西暦年(4桁)
mm 月(1〜12)
dd 日
wd 曜日(0を指定。どんな値でも無視される)
HH 時
MM 分
SS 秒
timezone (省略可)指定した日時のタイムゾーン。省略時はOSのローカルタイム。書き方は GETTIME と同じ
datetext 代替指定: 'Sun, 06 Nov 1994 08:49:37 GMT' や '2024-01-01T09:00:00+09:00' 形式の日付文字列

戻り値†

EPOCH(1970/1/1 00:00:00 UTC)から指定日時(または現在日時)までの経過秒数(数値)

解説†

EPOCHから現在時刻または指定日時までの経過秒数を返す関数。C言語のtime()関数に相当する。

日付文字列†

datetext は次の形式を読める。HTTP 形式の曜日は省略してもよい。

Sun, 06 Nov 1994 08:49:37 GMT      RFC 822 / RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT     RFC 850(年が2桁のときは 70-99 が19xx、00-69 が20xx)
Sun Nov  6 08:49:37 1994           C の asctime
2024-01-01T09:00:00+09:00          ISO 8601

ISO 8601 は次の形を読む。

形 例
日付 2024-01-01(時刻は 00:00:00)
日付と時刻 2024-01-01T09:30、2024-01-01T09:30:15、2024-01-01 09:30:15(T は小文字や空白でもよい)
小数秒 2024-01-01T09:30:15.123(小数秒は切り捨てる)
タイムゾーン Z、+09:00、+0900、+09、-05:00
基本形式 20240101、20240101T093015Z

存在しない日付(2024-02-30)や範囲外の時刻(25:00)は読めない。24:00:00 は翌日の0時、秒の 60 は閏秒として扱う。

使用例†

// 2006年14月25日 15:56:40 のEPOCH秒を取得し、GETTIMEで日付に変換する例
// (月14 = 翌年2月)
_array = GETTIME(GETSECCOUNT(2006, 14, 25, 0, 15, 56, 40))
"%(_array[1])月%(_array[2])日"
// 結果: "2007年2月25日" のように表示される

// UTCの日時から求める
_sec = GETSECCOUNT(2024, 1, 1, 0, 0, 0, 0, 'UTC')   // 1704067200

// ISO 8601 の文字列から求める
_sec = GETSECCOUNT('2024-01-01T09:00:00+09:00')     // 1704067200

互換性†

関連項目†


GETMEMINFO†

書式†

GETMEMINFO()

引数†

なし(引数はありません)

戻り値†

動作環境のメモリ情報を格納した汎用配列(5要素):

インデックス 内容
0 物理メモリ使用率
1 物理メモリ総量
2 物理メモリ空き容量
3 仮想メモリ+物理メモリの総量
4 仮想メモリ+物理メモリの空き容量

解説†

動作環境のメモリ情報を取得する関数。

互換性†


GETENV†

書式†

GETENV( name )

引数†

Parameter Description
name 取得したい環境変数名(文字列)

戻り値†

解説†

OSの環境変数を名前で取得する関数。指定した環境変数が存在しない場合は空文字列を返す。引数は省略できず、省略すると警告(W0008)を出して空文字列を返す。

なお、環境変数の設定関数は不用意に触ると危険なため、現状実装予定はない。

互換性†


READFMO†

Windows専用

この関数はWindows用にコンパイルされたyayaでしか動作しません。

書式†

READFMO( [ name ] [ , charset ] )

引数†

Parameter Description
name (省略可)FMOの識別子。省略時は "Sakura"
charset (省略可)文字エンコーディング(文字コードの名前)。省略時はOSのデフォルト。Tc569-13で追加。不正な値なら警告 W0012 を出して何も返さない

戻り値†

解説†

ファイルマッピングオブジェクト(FMO)の内容を文字列として取得します。FMOの先頭4バイトはサイズを表す符号なし整数であり、読み取り時にはその4バイトが除去されます。FMO内にnullバイト(0x00)が存在する場合の動作は未定義です。

互換性†