HSP命令講座 <gettime関数>

Last Update : 2007/02/xx

PR HSPの書籍 『逆引き HSP3プログラミング事典 応用編』

gettime関数 (HSP 3.x)

 元々HSP2では命令スタイルたっだもので、HSP3では関数スタイルに変更されました。関数名の由来は、「get time」(取得+時間)から。名前のごとく、PCで設定されている現在の年月日、時刻、曜日の数値を取得できます。

 gettime(取得タイプ)

 取得タイプで0〜7を指定することで、下の値が返ってきます。

取得タイプ
年(year)。「20**」という数値が返る。
月(month)。「1〜12」の範囲の数値が返る。
曜日(days of the week)。「0〜6」の範囲の数値が返る。
[ 0=日、1=月、2=火、3=水、4=木、5=金、6=土 ]
日(day)。「1〜31」の範囲の数値が返る。
時(hour)。「0〜23」の範囲の数値が返る。
分(minute)。「0〜59」の範囲の数値が返る。
秒(second)。「0〜59」の範囲の数値が返る。
ミリ秒(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

↑TOP↑

〜HSP3 あれこれ〜
ウィンドウ | オブジェクト | ファイル | フォルダ | キーボード | マウス | メニュー | システム | 文字列 | COM | その他

Copyright © 2005-2011 ゲーム作成ソフトHSPの情報をいろいろと Let's HSP!. All rights reserved.