打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
求一个小写日期转换成大写的通用函数,谢谢
问题补充:如: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

满意答案

一句:
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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【算法练习】校招研发工程师笔试题
34 LintCode/LeetCode] Search for a Range [左右边界法/一次循环法]
面试随缘刷题--day3
LeetCode 81. 搜索旋转排序数组 II
Python | 你好,二分法
0081. Search in Rotated Sorted Array II (M)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服