写一个函数就可以了吗
先Format(date)
然后数字变汉字

解决方案 »

  1.   

    在计算机中,时间的表示没有中文,就象在DOS里所显示的一样
    在高级编程语言中,中经过函数转换的,所以
      

  2.   

    Option ExplicitPrivate Function Date2CN(sDate As String, Optional Flags As Boolean = False) As String
    Dim TrueDate As String
    Dim Year As String, Month As String, Day As String
    Dim CNStr As String
    Dim Result As String
    Dim Ten As String
        CNStr = IIf(Flags, "零壹贰叁肆伍陆柒捌玖拾", "○一二三四五六七八九十")
        Ten = Mid(CNStr, 11, 1)
        TrueDate = Format(sDate, "yyyy-m-d")
        If Not IsDate(TrueDate) Then
            Date2CN = sDate
            Exit Function
        End If
        Year = DatePart("yyyy", TrueDate)
        Month = DatePart("m", TrueDate)
        Day = DatePart("d", TrueDate)
        Result = Num2CN(Year, Flags) & "年"
        If Len(Month) = 2 Then
            If Right(Month, 1) <> "0" Then
                Result = Result & Ten & Num2CN(Right(Month, 1), Flags)
            Else
                Result = Result & Ten
            End If
        Else
            Result = Result & Num2CN(Month, Flags)
        End If
        Result = Result & "月"
        Select Case Val(Day)
            Case 1 To 9
                Result = Result & Num2CN(Day, Flags)
            Case 10
                Result = Result & Ten
            Case 20, 30
                Result = Result & Num2CN(Left(Day, 1), Flags) & Ten
            Case 11 To 19
                Result = Result & Ten & Num2CN(Right(Day, 1), Flags)
            Case 21 To 31
                Result = Result & Num2CN(Left(Day, 1), Flags) & Ten & Num2CN(Right(Day, 1), Flags)
        End Select
        Date2CN = Result & "日"
    End FunctionPrivate Function Num2CN(sNum As Variant, Optional Flags As Boolean = False) As String
    Dim Result As String
    Dim CNStr As String
    Dim i As Integer
    Dim TempNum As String
        CNStr = IIf(Flags, "零壹贰叁肆伍陆柒捌玖拾", "○一二三四五六七八九十")
        For i = 1 To Len(CStr(sNum))
            TempNum = Mid(CStr(sNum), i, 1)
            If IsNumeric(TempNum) Then
                Result = Result & Mid(CNStr, Val(TempNum) + 1, 1)
            Else
                Result = Result & TempNum
            End If
        Next
        Num2CN = Result
    End FunctionPrivate Sub Command1_Click()
    MsgBox Date2CN(IIf(Text1.Text = "", Now, Text1.Text), False)
    End Sub