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