GETTIME

タグ: ,

第二引数に指定された基準日から第一引数に指定した日数を加算した値を返します。GETTIME関数を実行すると特殊変数(G_TIME_*)に値が格納されます。月や年など日数が定まらないものについてはdateAdd関数を使います。

構文
  1. Double = GETTIME( [±n日, 基準日] )
引数
±n日
nを指定すると当日もしくは基準日からプラスマイナス n日とする、小数点以下は時間(デフォルト=0)
基準日
指定された日付を基に日付を設定する (デフォルト=当日)
("YYYYMMDD" or "YYYY/MM/DD" or "YYYY-MM-DD" or "YYYYMMDDHHNNSS" or "YYYY/MM/DD HH:NN:SS")
戻り値

2000年1月1日からの秒数を返す

値がセットされる特殊変数

G_TIME_YY
G_TIME_MM
G_TIME_DD
G_TIME_HH
G_TIME_NN
G_TIME_SS
G_TIME_ZZ
ミリ秒
G_TIME_WW
曜日 (0:日曜....6:土曜)
G_TIME_YY2
年をxxの文字型
G_TIME_MM2
月をxxの文字型
G_TIME_DD2
日をxxの文字型
G_TIME_HH2
時をxxの文字型
G_TIME_NN2
分をxxの文字型
G_TIME_SS2
秒をxxの文字型
G_TIME_ZZ2
ミリ秒をxxxの文字型
G_TIME_YY4
年をxxxxの文字型

加算日時の指定方法

GETTIME関数の第一引数は日単位で指定します。そのため指定する時間が日単位以外の場合、事前に変換する必要があります。

5秒後を日単位に変換。86400=24*60*60。

\[\begin{eqnarray} 1日:86400秒&=&n日:5秒\\ 1:86400&=&n:5\\ 86400n&=&5\\ n&=&\frac{5}{86400} \end{eqnarray}\]
PRINT GETTIME(5/86400)

8時間後を日単位に変換。

\[\begin{eqnarray} 1日:24時間&=&n日:8時間\\ 1:24&=&n:8\\ 24n&=&8\\ n&=&\frac{8}{24} \end{eqnarray}\]
GETTIME(8/24)

2分30秒後を日単位に変換するときは、2分・30秒をそれぞれ日単位に変換してから加算する。もしくは、どちらかの単位(分か秒)に統一する。

GETTIME(2/1440 + 30/86400)

計算方法がわからない場合は、convert関数を使って変換してください。変換後は日なので第三引数は「day」で固定です。

convert(数値, 変換前単位, “day”)

convert関数を使うと5秒後・8時間後はそれぞれ以下のようになります。

GETTIME(convert(5, “sec”, “day”))
GETTIME(convert(8, “hr”, “day”))

プログラム実行例

指定日時までのカウントダウンタイマー

DIM date = dateAdd("d", 1, today())
DIM targetTime = GETTIME(0, date + " 00:00:00")

REPEAT
	DIM remainingTime = targetTime - GETTIME()
	FUKIDASI(remainingTime + "秒")
	SLEEP(0.001)
UNTIL remainingTime <= 0

MSGBOX("0時になりました。")
  1. dateAdd
  2. today
  3. GETTIME
  4. control.repeat-until
  5. FUKIDASI
  6. SLEEP
  7. MSGBOX

2000年1月1日からの経過時間

2000年1月1日からの経過時間を取得。

PRINT GETTIME() + "秒"
  1. GETTIME
結果
695819983秒

今日の日付を出力

GETTIME()
PRINT G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
  1. GETTIME
結果
2022/01/18

1週間後の日付を出力

GETTIME(7)
PRINT G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
  1. GETTIME
結果

2022/01/25

1時間前の日時を出力

GETTIME(-1/24)
PRINT G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2
  1. GETTIME
結果

2022/01/18 10:19:43
解説
  1. 1行目
    GETTIME(-1/24)
    GETTIMEの第1引数の単位は「日」なので1時間を日単位に直します。\[\begin{eqnarray}1日:24時間&=&n日:-1時間\\24n&=&-1\\n&=&-\frac{1}{24}\end{eqnarray}\]

今年の残りの日数を求める

GETTIME()
PRINT INT((GETTIME(0, dateAdd("yyyy", 1, G_TIME_YY + "0101")) - GETTIME()) / 86400) + "日"
  1. GETTIME
  2. INT

プログラム実行時からの経過時間を表示(ESCで終了)

SETHOTKEY(VK_ESC, , "forceQuit")

DIM t = GETTIME()

WHILE TRUE
	FUKIDASI(GETTIME() - t)
	SLEEP(0.001)
WEND

PROCEDURE forceQuit()
	EXITEXIT
FEND
  1. sethotkey
  2. gettime
  3. fukidasi
  4. sleep

今年の干支を取得

GETTIME()

SELECT G_TIME_YY MOD 12
	CASE 0;		PRINT "申"
	CASE 1;		PRINT "酉"
	CASE 2;		PRINT "戌"
	CASE 3;		PRINT "亥"
	CASE 4;		PRINT "子"
	CASE 5;		PRINT "丑"
	CASE 6;		PRINT "寅"
	CASE 7;		PRINT "卯"
	CASE 8;		PRINT "辰"
	CASE 9;		PRINT "巳"
	CASE 10;	PRINT "午"
	CASE 11;	PRINT "未"
SELEND
  1. GETTIME

Was this post helpful?

関連記事

dateDiff
dateDiff関数は、指定された2つの日付の時間間隔を返します。
SetTime
today
today関数は、現在の日付を返す関数です。YYYY/MM/DD形式で返されます。時刻も含めて取得する場合はnow関数を使います。
getSerialTime
UWSC時間からシリアル値を取得します。
getUNIXTime
UWSC時間からUNIX時間に変換します。
uwscToSerial
UWSC時間をシリアル値に変換します。
getNthWeekday
指定年月の第何何曜日(第nW曜日)の日付を返します。
uwscToUNIX
UWSC時間をUNIX時間に変換します。
serialToUwsc
シリアル値をUWSC時間に変換します。シリアル値は、1日(24時間)を1.0とし、1日ごとに1ずつ増えます。整数部分は日付を、小数部分は時刻を表します。Windows版では、1900年日付システムを適用しており、1900年1月1日の午前0時を起点として、シリアル値は1から始まります。
serialToUNIX
シリアル値をUNIX時間に変換します。
UNIXToUwsc
UNIX時間をUWSC時間に変換します。
UNIXToSerial
UNIX時間をシリアル値に変換します。
dateAdd
日時(date)に、指定した単位(interval)の時間(num)を加算して返します。正の値で未来、負の値で過去になります。
dateString
指定された日付を西暦から和暦に変換します。
YMDToJD
YMDToJD関数は、グレゴリオ暦をユリウス日をに変換する関数です。西暦1582年10月15日以降の日時を指定してください。ユリウス日をグレゴリオ暦に変換するには、JDToYMD関数を使います。
JDToYMD
JDToYMD関数は、ユリウス日をグレゴリオ暦に変換する関数です。グレゴリオ暦をユリウス日に変換するには、YMDToJD関数を使います。
getWeekdayName
getWeekdayName関数は、指定した曜日番号に対応する曜日名を返します。第一引数に曜日番号、第二引数にフォーマットを指定します。
getKyureki
getKyureki関数は、引数に指定したグレゴリオ暦の年月日から旧暦(天保暦)の日付を求める関数です。
getRokuyo
getRokuyo関数は、引数に指定した日付から六曜を求める関数です。第一引数に年、第二引数に月、第三引数に日を指定します。
getYear
指定した日付から「年」を返します。
Hour
シリアル値 から「時」を求めます。
getMonth
指定した日付から「月」を返します。
getDay
指定した日付から「日」を返します。
Minute
シリアル値 から「分」を求めます。
dateValue
dateValue関数は、日付形式の文字列をシリアル値に変換する関数です。
getWeekday
引数に指定された日付から曜日番号を取得します。0:日曜〜6:土曜の範囲で値を返します。
Second
シリアル値 から「秒」を求めます。
timeValue
時刻を表す文字列をシリアル値に変換します。結果は、0以上1未満の値を取ります。引数に日付が含まれる場合日付は無視され、時刻情報のみ変換されます。
isDate
isDate関数は、引数が有効な日付として認識できる場合はTrue、それ以外の場合はFalseを返します。
getHour
指定された日時の「時」を0〜23の間の数値で返します。日付のみ指定された場合は「00」が返ります。
getMinute
指定された日時の「分」を0〜59の間の数値で返します。日付のみ指定された場合は「00」が返ります。
getSecond
指定された日時の「秒」を0〜59の間の数値で返します。日付のみ指定された場合は「00」が返ります。
getEndOfMonth
getEndOfMonth関数は、date から m 月後の月末の日付を返す関数です。m は正の値で未来、負の値で過去になります。