11
社区成员




作者:昨夜星辰
要点解析:
1、不同月份的天数不同,1、3、5、7、8、10、12为31天,2月平年为28天,闰年为29天,其余月份为30天。
2、需要判断年份是否为闰年,闰年判断方法为年份(可被4整除,且不可被100整除)或(能被400整除)。
调用方法:
Dim 年, 月, 日,日期
年 = 生成随机数(1949, 2022) '随机年
月 = 生成随机数(1, 12) '随机月
If Len(月) = 1 Then
月 = "0" & 月
End If
日 = 生成随机数(1, 获取指定某年某月中有几天(年, 月)) '随机日
If Len(日) = 1 Then
日 = "0" & 日
End If
日期 = 年 & "-" & 月 & "-" & 日 '组合日期
TracePrint "字符串格式:" & 年 & "-" & 月 & "-" & 日
TracePrint "日期格式:" & CDate(日期)
复制代码调试结果:
脚本 随机生成日期.Q ,第12行:字符串格式:1960-01-04
脚本 随机生成日期.Q ,第13行:日期格式:1960/1/4
源码:
Dim 年, 月, 日,日期
年 = 生成随机数(1949, 2022) '随机年
月 = 生成随机数(1, 12) '随机月
If Len(月) = 1 Then
月 = "0" & 月
End If
日 = 生成随机数(1, 获取指定某年某月中有几天(年, 月)) '随机日
If Len(日) = 1 Then
日 = "0" & 日
End If
日期 = 年 & "-" & 月 & "-" & 日 '组合日期
TracePrint "字符串格式:" & 年 & "-" & 月 & "-" & 日
TracePrint "日期格式:" & CDate(日期)
Function 判断年份是否为闰年(年份)
判断年份是否为闰年 = 0
If (CLng(年份) Mod 4) = 0 Then
If (CLng(年份) Mod 100) <> 0 Then
判断年份是否为闰年 = 1
Else
If (CLng(年份) Mod 400) = 0 Then
判断年份是否为闰年 = 1
End If
End If
End If
End Function
Function 获取指定某年某月中有几天(年, 月)
年 = CLng(年)
月 = CLng(月)
Dim 是否为闰年
是否为闰年 = 判断年份是否为闰年(年)
If 月 = 1 Or 月 = 3 Or 月 = 5 Or 月 = 7 Or 月 = 8 Or 月 = 10 Or 月 = 12 Then
获取指定某年某月中有几天 = 31
ElseIf 月 = 2 Then
If 是否为闰年 = 1 Then
获取指定某年某月中有几天 = 29
Else
获取指定某年某月中有几天 = 28
End If
Else
获取指定某年某月中有几天 = 30
End If
End Function
Function 生成随机数(num1, num2)
Dim 最小值, 最大值
最小值 = num1
最大值 = num2
If num1 > num2 Then
最小值 = num2
最大值 = num1
End If
Randomize
生成随机数 = Int((最大值 - 最小值 + 1) * Rnd + 最小值)
End Function