给一个年分的 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
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
一个函数?想什么呢?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
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
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
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