我試了很長時間才找到關於經典ASP中隨機日期的幫助。 我想在兩個日期之間創建一個隨機日期。經典ASP隨機日期
例如:我的隨機日期必須介於2010-04-05和2012-04-05之間。
感謝您的幫助!
問候 萊納斯
我試了很長時間才找到關於經典ASP中隨機日期的幫助。 我想在兩個日期之間創建一個隨機日期。經典ASP隨機日期
例如:我的隨機日期必須介於2010-04-05和2012-04-05之間。
感謝您的幫助!
問候 萊納斯
你可以使用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)
%>
其實這是在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())
哇,完美!偉大的工作...... – compcobalt
@ Kul-Tigin隨機化(重新播種發電機)應該每個程序/腳本會話/運行調用一次,永遠不會調用(可能)多次的例程,因爲隨機發生器旨在提供隨機*數字序列*。 –
@ Ekkehard.Horner你能幫我理解一下它又有什麼問題嗎?......(Thx for comment) – compcobalt
謝謝!對我來說一個完美的解決方 – Rufuhs
代碼示例將大大改善此答案 – AnthonyWJones
@ulluoink - 您是不是指DateAdd而不是DateDiff? –