【源码】随机生成日期

按键精灵小Q
按键精灵官方账号
2022-09-15 15:07:54

作者:昨夜星辰

 

要点解析:
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

 

原文地址:http://bbs.anjian.com/showtopic-701610-1.aspx

...全文
202 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

11

社区成员

发帖
与我相关
我的任务
社区描述
按键精灵交流阵地
其他 企业社区
社区管理员
  • 按键精灵小Q
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧