将连续数字串转换为日期的函数

将连续数字串转换为日期的函数

在日常的工作中,经常需要输入日期,一个典型的作法就是按部就班的按日期的格式输入,但是,如果程序只能接受这样的输入是不是太LOW了,为了能够应对大量的日期输入,下面给出我之前做的一个可以接受连续数字串,自动转换为日期的函数,供大家参考、交流。
连续输入4~8位数字字串,如果没有歧义,函数则会按相应的规格转换为日期字串并返回。

Public Function NumToDate(DateStr As String) As String '数字串转日期
Select Case Len(DateStr)
    Case 8 '完整日期
        NumToDate = Format(DateStr, "####-##-##")
    Case 7 '月份为个位数
        NumToDate = Format(Left(DateStr, 4) & "0" & Right(DateStr, 3), "####-##-##") '默认月份为个位数
        If Not IsDate(NumToDate) Then NumToDate = Format(Left(DateStr, 6) & "0" & Right(DateStr, 1), "####-##-##")
    Case 6 '月份和日期都为个位数或年份为两位数,月和日为两位数
        NumToDate = Format(Left(DateStr, 4) & "0" & Mid(DateStr, 5, 1) & "0" & Right(DateStr, 1), "####-##-##")
        If Not IsDate(NumToDate) Then NumToDate = Format("20" & Left(DateStr, 2) & Mid(DateStr, 3, 4), "####-##-##")
    Case 5 '年份为两位数,月份为个位数,日期为两位数
        NumToDate = Format("20" & Left(DateStr, 2) & "0" & Right(DateStr, 3), "####-##-##")
        If Not IsDate(NumToDate) Then NumToDate = Format("20" & Left(DateStr, 4) & "0" & Right(DateStr, 1), "####-##-##")
    Case 4 '年份为两位数,月份和日期为个位数
        NumToDate = Format("20" & Left(DateStr, 2) & "0" & Mid(DateStr, 3, 1) & "0" & Right(DateStr, 1), "####-##-##")
End Select
End Function

——专注办公软件的二次开发及培训,你有问题,我有思路!
——微博、微信、CSDN同号:w_dexu
——转载请注明出处!

微信二维码扫码加微信

猜你喜欢

转载自blog.csdn.net/w_dexu/article/details/107871565
今日推荐