1007236046 发表于 2012-10-15 21:06:35

怎么判断一个8位数是有效的日期格式[已解决]

本帖最后由 1007236046 于 2012-10-16 08:37 编辑

比如19980229,19980431都是不存在的

duck904 发表于 2012-10-15 21:17:42

提供个思路:截取Year:前4位;Month:5-6位;day:后2位
------------------------------------
数组dayList存每月天数:31,28,31,30,31,30,31,31,30,31,30,31
如果是闰年二月29天
-----------------------------------
if $Month < 13 and $Month > 0 and $day > 0 and $day <= $dayList[$Month] then
    是日期
endif


-----------闰年计算BAIDU来的---------------------------
YEAR同时满足以下条件:
1、年份能被4整除;
2、年份若是100的整数倍的话,需被400整除,否则是平年。
举例如下:
1900年能被4整除,但是因为其是100的整数倍,却不能被400整除,所以是平年;而2000年就是闰年;1904和2004、2008等直接能被4整除且不倍100整除,都是闰年。
---------------------------------------------------------

netegg 发表于 2012-10-15 21:25:03

#Include <Date.au3>
msgbox(0,0,_DateIsValid(stringleft($str,4) &'/'&stringmid($str, 5, 2)&'/'&stringright($str, 2)))

navy 发表于 2012-10-15 21:47:41

#Include
msgbox(0,0,_DateIsValid(stringleft($str,4) &'/'&stringmid($str, 5, 2)&'/'&stringright($st ...
netegg 发表于 2012-10-15 21:25 http://www.autoitx.com/images/common/back.gif


netegg 正解,受教了!!

dhlhmgc 发表于 2016-1-12 22:05:18

$a = "19980229"
$var = _DateIsValid( StringRegExpReplace($a,"(\d{4})(\d{2})(\d{2})","${1}-${2}-${3}") )
msgbox(48,0,$var)

$b = "19980229"
$var = _DateIsValid( StringRegExpReplace($b,"(\d{4})(\d{2})(\d{2})","${1}-${2}-${3}") )
msgbox(48,0,$var)
页: [1]
查看完整版本: 怎么判断一个8位数是有效的日期格式[已解决]