スクリプト/汎用関数/指定期間内か判定する
最終投稿者:
aoihikawa
更新:2012/09/26 01:31:43
指定期間内か判定する
(ご自由にご利用ください)
<引数の内容>
isTimePeriod(開始年,開始月,開始日,開始時,開始分,終了年,終了月,終了日,終了時,終了分)
使用例
ご意見やご質問などありましたら
こちらのブログ記事まで。
ツイート
(ご自由にご利用ください)
<引数の内容>
isTimePeriod(開始年,開始月,開始日,開始時,開始分,終了年,終了月,終了日,終了時,終了分)
#うるう年の判定
def getUruuflg(y)
return (y % 4) == 0 && (y % 100) != 0 || (y % 400) == 0
end
#経過時間の計算
def deffTime(t)
mi = 0
d_li = createArray()
d_li = splitString("0,31,59,90,120,151,181,212,243,273,304,334,365",",")
i = 0
while i < getArrayLength(d_li)
d_li[i] = toNumber(d_li[i])
i = i + 1
end
j = t[0] - 1
while j > 1999
if getUruuflg(j)
mi = mi + 527040
else
mi = mi + 525600
end
j = j - 1
end
if getUruuflg(t[0]) && (t[1] > 2)
mi = mi + 1440
end
mi = mi + ((d_li[(t[1] - 1)] + (t[2] - 1)) * 1440)
mi = mi + (t[3] - 1) * 60 + t[4]
return mi
end
#期間中か判定する
def isTimePeriod(sy,sm,sd,sh,smi,ey,em,ed,eh,emi)
t = getServerCurrentDate()
if sy == 0 && ey == 0
t[0] = 0; t[1] = 0; t[2] = 0
end
ntp = deffTime(t)
st = createArray()
st[0] = sy; st[1] = sm; st[2] = sd; st[3] = sh; st[4] = smi
stp = deffTime(st)
et = createArray()
et[0] = ey; et[1] = em; et[2] = ed; et[3] = eh; st[4] = emi
etp = deffTime(et)
return (stp <= ntp && etp >= ntp)
end
使用例
#期間中か判定する
#2012年9月1日0:00 ~ 2012年12月31日23:59
if isTimePeriod(2012,9,1,0,0,2012,12,31,23,59)
speak("期間中です")
else
speak("期間外です")
end
#毎日10:00 ~ 15:59(年月日を0にします)
if isTimePeriod(0,0,0,10,0,0,0,0,15,59)
speak("期間中です")
else
speak("期間外です")
end
ご意見やご質問などありましたら
こちらのブログ記事まで。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
コメントはありません。