现有我有个大小写日期转换问题:
2007  二○○七  2006  二○○六12    十二30    三十5     五
年月日我是文本框分开了的,所以就只要一个转换函数就行了但0不能开头。多谢提供!!!

解决方案 »

  1.   

    给一个年分的
    Private Sub Command1_Click()
        Dim strDate As String
        Dim strChinese As String
        Dim intloop As Integer
        Dim strArrDate(9) As String    strDate = "2007"
        strArrDate(0) = "楇"
        strArrDate(1) = "堦"
        strArrDate(2) = "擇"
        strArrDate(3) = "嶰"
        strArrDate(4) = "巐"
        strArrDate(5) = "屲"
        strArrDate(6) = "榋"
        strArrDate(7) = "幍"
        strArrDate(8) = "敧"
        strArrDate(9) = "嬨"    For intloop = 1 To Len(strDate)
            strChinese = strChinese & strArrDate(CInt(Mid$(strDate, intloop, 1)))
        Next    Debug.Print strChineseEnd Sub
      

  2.   

    Function CDateToString(ByVal d As Date) As String    Dim s As String
        Dim tmp() As String
        Dim i As Integer
        Dim arr As Variant
        
        s = Format(d, "yyyy-m-d h:m:s")
        
        s = Replace(s, "-", Chr(32))
        s = Replace(s, ":", Chr(32))
        tmp = Split(s, Chr(32))
        For i = 1 To UBound(tmp)
            tmp(i) = Switch( _
                Val(tmp(i)) < 10, tmp(i), _
                Val(tmp(i)) = 10, "十", _
                Val(tmp(i)) > 10 And Val(tmp(i)) < 20, "十" & Right(tmp(i), 1), _
                Val(tmp(i)) Mod 10 = 0, Left(tmp(i), 1) & "十", _
                Val(tmp(i)) > 20, Left(tmp(i), 1) & "十" & Right(tmp(i), 1))
        Next
        arr = Array("年", "月", "日 ", "点", "分", "秒")
        s = vbNullString
        For i = 0 To UBound(arr)
            s = s & tmp(i) & arr(i)
        Next
        
        s = Replace(s, "0", "零")
        s = Replace(s, "1", "一")
        s = Replace(s, "2", "二")
        s = Replace(s, "3", "三")
        s = Replace(s, "4", "四")
        s = Replace(s, "5", "五")
        s = Replace(s, "6", "六")
        s = Replace(s, "7", "七")
        s = Replace(s, "8", "八")
        s = Replace(s, "9", "九")
        
        CDateToString = s
        
    End Function
      

  3.   

    一个函数?想什么呢?Const ChineseNumber As String = "零一二三四五六七八九"Public Function Get Year_Number(Byval x As String) As String
        Dim i As Integer, tmp1 As String, tmp2 As String    tmp1 = CStr(Val(x))    '去除前导0
        For i = 1 To Len(tmp1)
            tmp2 = tmp2 & Mid(ChineseNumber, Val(Mid(tmp1, i, 1)) + 1, 1)
        Next i
        Year_Number = tmp2
    End FunctionPublic Function Month_Day_Number(Byval x As String) As String
        Dim i As Integer, tmp1 As String, tmp2 As String    tmp1 = CStr(Val(x))    '去除前导0    If Len(tmp1) > 2 Or tmp1 = "" Then Exit Function    If Len(tmp1) = 2 Then
            tmp2 = IIf(Left(tmp1, 1) > "1", Mid(ChineseNumber, Val(Left(tmp1, 1)) + 1, 1), "") & "十"
        End If
        tmp1 = Right(tmp1, 1) 
        If Val(tmp1) Then tmp2 = tmp2 & Mid(ChineseNumber, Val(tmp1) + 1, 1)
        Month_Day_Number = tmp2
    End Function