注册 登录
编程论坛 VB6论坛

日期格式转换。想把“OCT20”,也就是10月20日,转换成“1020”

ami1999 发布于 2015-05-14 15:55, 1464 次点击
日期格式转换问题。

从txt文档中读出日期赋值给变量。读出内容是“OCT20”,就是10月20日
想将“OCT20”转换为“1020”,
哪位大神帮助一下。
新手注册,没积分。请谅解
4 回复
#2
风吹过b2015-05-14 16:31
Public Function ENGTONUM(cs As String) As String
Const initstr = "01JAN,02FEB,03MAR,04APR,05MAY,06JUN,07JUL,08AUG,09SEP,10OCT,11NOV,12DEC,"

Dim i As Long, j As String
ENGTONUM = "Err!"   '默认为错误
j = UCase(cs)       '转大写
If Len(j) = 5 Then  '限制为 三字母+2数字模式
    i = InStr(1, initstr, Left(j, 3) & ",")         '找内容
    If i > 0 Then                                   '找到
        ENGTONUM = Mid(initstr, i - 2, 2) & Right(j, 2)    '取值
    End If
End If

End Function

调用:print ENGTONUM("OCT20")
#3
lianyicq2015-05-14 16:41
回复 楼主 ami1999
如果OCT与20之间有空格,很容易
Form1.Caption = Format("OCT 20", "mmdd")

如果OCT与20之间木有空格,就这样
b = "OCT20"
b = Left(b, 3) & " " & Mid(b, 4, Len(b) - 3)
Form1.Caption = Format(b,"mmdd")

[ 本帖最后由 lianyicq 于 2015-5-14 16:44 编辑 ]
#4
风吹过b2015-05-14 16:59
真是有空格,就被系统认为 日期类型。3楼的方法最快速。

Public Function ENGTONUM(cs As String) As String

Dim i As Long, j As String

If Len(cs) = 5 Then  '限制为 三字母+2数字模式
   j = Left(cs, 3) & " " & Right(cs, 2)
   If IsDate(j) Then
        ENGTONUM = Format(j, "mmdd")
    Else
        ENGTONUM = "Err!"
    End If
Else
    ENGTONUM = "Err!"
End If

End Function
#5
ami19992015-05-15 09:35
感谢二楼、三楼两位大神。解决了。非常感谢。
1