经典ASP随机日期

时间:2012-06-20 08:23:54

标签: date asp-classic random vbscript

我已经尝试了很长时间来寻找有关经典ASP中随机日期的帮助。 我想在两个日期之间创建一个随机日期。

例如:我的随机日期必须介于2010-04-05和2012-04-05之间。

感谢任何帮助!

最诚挚的问候 莱纳斯

3 个答案:

答案 0 :(得分: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())

答案 1 :(得分:1)

你可以使用DateDiff函数和Rnd函数。 Rnd函数生成一个随机数,然后使用datediff来区分日期

答案 2 :(得分:0)

试试这个:

<%
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)
%>