当前位置:编程学习 > VB >>

居然几天了,都没有人能回答?

现有我有个大小写日期转换问题如:
2007 要转换成: 二○○七  同理:2006  二○○六,12  十二,30  三十,5  五
例如:
2007  12  21  要转换成: 二○○七 十二 二十一 

由于年月日我是用三个文本框分开了的,所以得出日期也是三个年月日分开的了。
如果有如:2007-12-21 转换成: 二○○七年十二月二十一日的代码函数也行,
多谢提供!!!
--------------------编程问答--------------------

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 --------------------编程问答-------------------- 挑衅性的标题!! --------------------编程问答-------------------- 作业贴 删之 --------------------编程问答-------------------- if 0分 And 挑衅 then
msgbox "此人极度危险!"
end if --------------------编程问答-------------------- vbman2003(家人) ( ) 信誉:100 
多谢!!! --------------------编程问答-------------------- Val(tmp(i)) > 20, Left(tmp(i), 1) & "十" & Right(tmp(i), 1))
这里还差一点,我补进去了,注意一月中的天数,最多只能是31天,月份中是大只能是12,所以这里没有判断!!! --------------------编程问答-------------------- 我是没有分了,不然会给的!!! --------------------编程问答--------------------
因为参数是Date,必须是日期类型数据,所以你说的判断没必要
这只是个示例,没做错误处理 --------------------编程问答-------------------- 你也可以改参数为string,然后用isdate判断是不是正确的日期,或者在format时用cdate转换一下,结合错误处理来解决。不要在Switch中判断
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,