Last Update : 2007/02/xx
元々HSP2では命令スタイルたっだもので、HSP3では関数スタイルに変更されました。関数名の由来は、「get time」(取得+時間)から。名前のごとく、PCで設定されている現在の年月日、時刻、曜日の数値を取得できます。
gettime(取得タイプ)
取得タイプで0〜7を指定することで、下の値が返ってきます。
| 取得タイプ | |
| 0 | 年(year)。「20**」という数値が返る。 |
| 1 | 月(month)。「1〜12」の範囲の数値が返る。 |
| 2 | 曜日(days of the week)。「0〜6」の範囲の数値が返る。 [ 0=日、1=月、2=火、3=水、4=木、5=金、6=土 ] |
| 3 | 日(day)。「1〜31」の範囲の数値が返る。 |
| 4 | 時(hour)。「0〜23」の範囲の数値が返る。 |
| 5 | 分(minute)。「0〜59」の範囲の数値が返る。 |
| 6 | 秒(second)。「0〜59」の範囲の数値が返る。 |
| 7 | ミリ秒(milli second)。「0〜999」の範囲の数値が返る。 [ 1000ミリ秒=1秒 ] |
^
gettime関数を利用したサンプルスクリプトコードをいくつか。
; 年月日 mes ""+gettime(0)+"年 "+gettime(1)+"月 "+gettime(3)+"日
; 午前 or 午後
hour = gettime(4)
if (hour / 12) {
mes "午後 (PM)"
} else {
mes "午前 (AM)"
}
曜日は、文字列自体ではなく数値が返ってきます。曜日文字列を持った配列変数を用意しておくのがポイント。
; 曜日 mes gettime(2) ; 日〜土の文字列を含む配列変数を用意 ; つまり、yobi.0→日曜日、yobi.6→土曜日 yobi1 = "日", "月", "火", "水", "木", "金", "土" mes ""+yobi1.gettime(2)+"曜日 yobi2 = "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" mes ""+yobi2.gettime(2)+".
時刻の場合、数値が1ケタ or 2ケタで表示される場合が存在します。もし2ケタ表示、つまり1ケタの場合に先頭に0を付けたい、あるいは先頭に1文字分のスペースを付けたい場合は、strf関数を利用した整形処理を組み合わせるのがポイント。
; 時刻
mes ""+gettime(4)+"時 "+gettime(5)+"分 "+gettime(6)+"秒
; 1桁の場合は0を先頭に付ける
mes "["+strf("%02d秒", gettime(6))+"]
; 1桁の場合は半角スペースを先頭に付ける
mes "["+strf("%2d秒", gettime(6))+"]
リアルタイムで時間を表示。グラデーション掛けてちょっくら豪華(?)に。
; 時間表示サンプルスクリプト (by Kpan)
title "時間表示スクリプト by Kpan"
; buffer命令で仮想ウィンドウ作成
; (裏側が見えるよう、あえてscreen命令にしてあります)
screen 1
; グラデーション表示
i = 60
repeat 60
color i * 4, i * 4, 255
line 0, cnt, 200, cnt
i--
loop
font "Arial", 48, 16 | 1
repeat
gsel 1
; 時刻文字列取得
; (ページの横幅が足りないので、分割しています)
time_data = strf("%02d:", gettime(4))
time_data += strf("%02d:", gettime(5))
time_data += strf("%02d", gettime(6))
color 0, 0, 0
boxf 200, 0, 400, 60
; 時刻表示
pos 200, 0
color 255, 255, 255
mes time_data
color 255, 255, 255
boxf 0, 60, 200, 120
; 影時刻表示
pos 2, 62
color 200, 200, 200
mes time_data
; アルファブレンドコピー
pos 0, 60
gmode 7, 200, 200
gcopy 1, 0, 0, 200, 60
gsel 0
; メインウィンドウにコピー
gmode 0, 200, 60
gcopy 1, 0, 60, 200, 60
wait 100
loop