![](/img/trans.png)
[英]How to use VBScript to open notepad and paste current date with DDMMYYYY format in it?
[英]how to generate random date DDMMYYYY format between start date-end date range every time in vb scripts?
我是vb腳本的新手,請幫助我。
我正在通過隨機添加最后兩位數字來生成隨機年份,如下所示,但我想在用戶提供的開始日期和結束日期之間生成隨機日期DDMMYYYY格式。
Randomize
tmp = Int((92 - 70 + 1) * Rnd + 70)
tmp1= "01/05/19" & tmp
以此為起點
Option Explicit
Function getRandomDate( startDate, endDate )
getRandomDate = DateAdd( _
"d" _
, Fix( DateDiff("d", startDate, endDate ) * Rnd ) _
, startDate _
)
End Function
Dim startDate, endDate
startDate = CDate("2016/03/10")
endDate = CDate("2017/09/30")
Randomize
Dim i
For i = 0 To 100
WScript.Echo getRandomDate( startDate, endDate )
Next
它只是計算開始日期和結束日期之間的天數,並在此天數范圍內選擇一個隨機數以添加到開始日期。
當使用Rnd()
生成隨機數時,請確保使用“ Randomize
來初始化隨機數生成器,並將“系統時間”用作種子值,否則會發生這種情況。
Option Explicit
Function getRandomDate( startDate, endDate )
getRandomDate = DateAdd( _
"d" _
, Fix( DateDiff("d", startDate, endDate ) * Rnd ) _
, startDate _
)
End Function
Dim startDate, endDate
startDate = CDate("2016/03/10")
endDate = CDate("2017/09/30")
Dim i
For i = 0 To 10
WScript.Echo getRandomDate( startDate, endDate )
Next
第一輸出:
15/04/2017
07/01/2017
02/02/2017
21/08/2016
28/08/2016
24/05/2017
17/03/2016
16/05/2017
16/06/2017
17/04/2017
04/04/2016
第二輸出:
15/04/2017
07/01/2017
02/02/2017
21/08/2016
28/08/2016
24/05/2017
17/03/2016
16/05/2017
16/06/2017
17/04/2017
04/04/2016
在代碼中添加Randomize
語句以查看差異;
Option Explicit
Function getRandomDate( startDate, endDate )
getRandomDate = DateAdd( _
"d" _
, Fix( DateDiff("d", startDate, endDate ) * Rnd ) _
, startDate _
)
End Function
Dim startDate, endDate
startDate = CDate("2016/03/10")
endDate = CDate("2017/09/30")
Dim i
'Call the random number generator with the system time as the seed.
Call Randomize()
For i = 0 To 10
WScript.Echo getRandomDate( startDate, endDate )
Next
第一輸出:
14/11/2016
28/09/2016
26/05/2016
06/01/2017
22/09/2016
13/06/2016
12/11/2016
05/03/2017
05/05/2016
01/05/2016
03/02/2017
第二輸出:
08/03/2017
20/01/2017
18/04/2016
29/11/2016
16/08/2016
07/05/2016
06/10/2016
27/01/2017
22/07/2016
19/07/2016
21/09/2017
這是一件容易錯過的事情,但有很大的不同。
Dim Date1 As Date, Date2 As Date
Date1 = 10/02/2017
Date2 = 10/06/2017
iDiff = DateDiff("d", Date1, Date2, vbMonday)
Dim RndDate As Date
Randomize
RndDate = DateAdd("d", Int((iDiff * Rnd) + 1), Date1)
我發現生成隨機日期的簡單方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.