标题: [问题求助] VBS如何判断输入的日期是否合法/正确 [打印本页]
作者: c755731262 时间: 2015-6-8 08:52 标题: VBS如何判断输入的日期是否合法/正确
本帖最后由 pcl_test 于 2017-4-13 09:38 编辑
- dim fanhuizhi
- fanhuizhi=checkdate(2,31,2015)
- if fanhuizhi <> "" then
- msgbox fanhuizhi,48,"报错信息"
- else
- msgbox "you xiao"
- end if
-
-
- function checkdate(smonth,sday,syear)
- on error resume next
- dim date1
- date1=cdate(sday&"/"&smonth&"/"&syear)
- if err.number <> 0 then
- err.clear
- date1=dateadd("m",1,smonth&"/"&syear)
- date1=dateadd("d",-1,date1)
- checkdate="there are only "&day(date1)&" days in "&smonth
- else
- checkdate=""
- end if
- end function
复制代码
当调用函数的参数为无效日期2015年2月31号时,从第13行到第17行看不懂,日期无效,得到提示信息15年2月只有28天,不知道这个是怎么得到的
作者: czjt1234 时间: 2015-6-9 08:25
13行,用&连接字符串为日期格式,可用Msgbox date1查看
CDate 根据系统的区域设置识别日期格式。如果数据的格式不能被日期设置识别,则不能判断年、月、日的正确顺序。另外,如果长日期格式包含表示星期几的字符串,则不能被识别。
下面的示例使用 CDate 函数将字符串转换成日期类型。一般不推荐使用硬件译码日期和时间作为字符串(下面的例子已体现)。而使用时间和日期文字 (如 #10/19/1962#, #4:45:23 PM#)。
MyDate = "October 19, 1962" ' 定义日期。
MyShortDate = CDate(MyDate) ' 转换为日期数据类型。
MyTime = "4:35:47 PM" ' 定义时间。
MyShortTime = CDate(MyTime) ' 转换为日期数据类型。
如果不是正确的日期或日期格式,则产生错误
err对象是vbs内置的错误对象
产生错误后,err.number属性值就不为0了,为错误代码
作者: c755731262 时间: 2015-6-9 17:53
回复 2# czjt1234
关键是,对于从13行到17行的代码怎么处理 输入的错误日期 这个过程,一直不明白怎么装换的,错误日期如 2015年2月31号
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |