従来の ASP でのランダムな日付に関するヘルプを見つけるために長い間試みてきました。2 つの日付の間にランダムな日付を作成したいと考えています。
例: 私のランダムな日付は 2010-04-05 から 2012-04-05 の間でなければなりません。
助けてくれてありがとう!
よろしくライナス
従来の ASP でのランダムな日付に関するヘルプを見つけるために長い間試みてきました。2 つの日付の間にランダムな日付を作成したいと考えています。
例: 私のランダムな日付は 2010-04-05 から 2012-04-05 の間でなければなりません。
助けてくれてありがとう!
よろしくライナス
実際、VBScript の方がはるかに簡単です。
Randomize
Function RandomDate(dtmStart, dtmEnd)
Dim dblDate
dblDate = (CDbl(dtmStart) - CDbl(dtmEnd)) * Rnd + CDbl(dtmEnd)
'dblDate = Int(dblDate) ' w/o time part, just date
RandomDate = CDate(dblDate)
End Function
Response.Write RandomDate(#1985/06/10#, Now())
DateDiff 関数と Rnd 関数を使用できます。乱数を生成する Rnd 関数と、日付を比較する datediff
これを試して:
<%
Dim DDmax,DDmin,MMmax,MMmin,YYYYmax,YYYYmin
MMmin=1
MMmax=12
DDmin=1
DDmax=28
YYYYmin=2010
YYYYmax=2012
Randomize
dim strTmpDate,strTmpDateYEAR,strTmpDateMONTH,strTmpDateDAY
strTmpDateYEAR=Int((YYYYmax-YYYYmin+1)*Rnd+YYYYmin)
strTmpDateMONTH=Int((MMmax-MMmin+1)*Rnd+MMmin)
strTmpDateDAY=Int((DDmax-DDmin+1)*Rnd+DDmin)
if Len(strTmpDateMONTH)=1 then
strTmpDateMONTH="0" & strTmpDateMONTH
end if
if Len(strTmpDateDAY)=1 then
strTmpDateDAY="0" & strTmpDateDAY
end if
strTmpDate=strTmpDateYEAR & strTmpDateMONTH & strTmpDateDAY
if strTmpDate > "20100405" and strTmpDate < "20120405" then
strTmpDateYEAR=Int((YYYYmax-YYYYmin+1)*Rnd+YYYYmin)
strTmpDateMONTH=Int((MMmax-MMmin+1)*Rnd+MMmin)
strTmpDateDAY=Int((DDmax-DDmin+1)*Rnd+DDmin)
if Len(strTmpDateMONTH)=1 then
strTmpDateMONTH="0" & strTmpDateMONTH
end if
if Len(strTmpDateDAY)=1 then
strTmpDateDAY="0" & strTmpDateDAY
end if
strTmpDate=strTmpDateYEAR & strTmpDateMONTH & strTmpDateDAY
end if
Response.write "Example A: " & strTmpDate & "<BR>"
Response.write "Example B: " & Left(strTmpDate,4) & "-" & Mid(strTmpDate,5,2) & "-" & Right(strTmpDate,2)
%>