求一个小写日期转换成大写的通用函数,谢谢
[ 标签:小写日期, 大写, 通用函数 ] 匿名 2009-02-19 18:25
问题补充:如:2009-2-10 贰零零玖年零贰月零壹拾日
1-9月前要加“零”
1-10日、20日、30日前要加“零”
网友完善的答案
Function BDate(date0 As Date) As String
Dim s As String
Dim nums(9) As String
nums(0) = "零": nums(1) = "壹": nums(2) = "贰": nums(3) = "叁": nums(4) = "肆": nums(5) = "伍":
nums(6) = "陆": nums(7) = "柒": nums(8) = "捌": nums(9) = "玖"
Sdate = Format(date0, "yyyymmdd")
For I = 1 To 4
BDate = BDate & nums(Val(Mid(Sdate, I, 1)))
Next I
BDate = BDate & "年"
For I = 5 To 6
If I = 5 And Val(Mid(Sdate, I, 1)) = 1 Then
If Val(Mid(Sdate, I + 1, 1)) = 0 Then
BDate = BDate & nums(0) & nums(Val(Mid(Sdate, I, 1))) & "拾"
Exit For
Else
BDate = BDate & nums(Val(Mid(Sdate, I, 1))) & "拾"
End If
Else
BDate = BDate & nums(Val(Mid(Sdate, I, 1)))
End If
Next I
BDate = BDate & "月"
For I = 7 To 8
If I = 7 And Val(Mid(Sdate, I, 1)) >= 1 Then
If Val(Mid(Sdate, I + 1, 1)) = 0 Then
BDate = BDate & nums(0)
BDate = BDate & nums(Val(Mid(Sdate, I, 1))) & "拾"
Exit For
Else
BDate = BDate & nums(Val(Mid(Sdate, I, 1))) & "拾"
End If
Else
BDate = BDate & nums(Val(Mid(Sdate, I, 1)))
End If
Next I
BDate = BDate & "日"
'MsgBox (BDate)
End Function
好:0
不好:0
原创:0
非原创:0
匿名 2011-05-14 00:07
满意答案
一句:
Format(日期,"****")
其中的****换成:
yy 二位年份
yyyy 四位年份
m 一位月份
mm 二位月份
mmm 英文月份缩写
mmmm 英文月份
d 一位日期
dd 二位日期
h 一位小时
hh 二位小时
m 一位分钟
mm 二位分钟
s 一位秒
ss 二位秒
还有别的不常用就不说了答案补充 这个意思啊,给你代码,有点多,一次性发不完,等补充
Function BigDate(theDate As Date) As String
Dim s As String,ss As String
Dim nums(9) As String
s=Format(theDate,"yyyymmdd")
nums(0)="零": nums(1)="壹": nums(2)="贰": nums(3)="叁": nums(4)="肆": nums(5)="伍": nums(6)="陆": nums(7)="柒": nums(8)="捌": nums(9)="玖"
'转化年
For i=1 To 4
ss=ss & nums(Val(Mid(s,i,1)))
Next i
ss=ss & "年"
'转化月
For i=5 To 6
ss=ss & nums(Val(Mid(s,i,1)))
If i=5 And Val(Mid(s,i,1))=1 Then ss=ss & "拾" '判断是否要添加拾
Next i
ss=ss & "月"答案补充 最后一段,测试过,没问题
'转化日
For i=7 To 8
If i=7 And Val(Mid(s,i,1)) >= 1 Then '判断是否要大于10
If Val(Mid(s,i + 1,1))=0 Then
ss=ss & nums(0)
ss=ss & nums(Val(Mid(s,i,1)))
ss=ss & "拾"
Exit For
Else
ss=ss & nums(Val(Mid(s,i,1)))
ss=ss & "拾"
End If
Else
ss=ss & nums(Val(Mid(s,i,1)))
End If
Next i
ss=ss & "日"
BigDate=ss
End Function