谁有日期小写转大写的函数??如1982-10-29转成一九八二年十月二十九日

史前大松鼠 2003-09-17 01:07:44
谢谢大家,很急,没时间自己写了,请各位帮个忙!!!!
...全文
265 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
TrueAndFalse 2004-01-21
  • 打赏
  • 举报
回复
Mark
eyun 2004-01-21
  • 打赏
  • 举报
回复
看看我的函数呵呵

function chinadate(datetemp)
a="零一二三四五六七八九十"
b="年月日"
temp=1
for i=1 to len(datetemp)+1
if isnumeric(mid(datetemp,i,1)) then
if len(datepart("m",datetemp))=2 and i=6 then
daters=daters&mid(a,asc(mid(datetemp,i,1))-47,1)&"十"
else
if len(datepart("d",datetemp))=2 and len(datetemp)-i=1 then
daters=daters&mid(a,asc(mid(datetemp,i,1))-47,1)&"十"
else
daters=daters&mid(a,asc(mid(datetemp,i,1))-47,1)
end if
end if
else
daters=daters&mid(b,temp,1)
temp=temp+1
end if
chinadate=daters
next
end function
response.write(chinadate("2004-1-1"))
HSK007 2004-01-20
  • 打赏
  • 举报
回复
严重向同志们学习。。。。。。
angel2a 2004-01-20
  • 打赏
  • 举报
回复
恩,8错8错
超级大笨狼 2004-01-20
  • 打赏
  • 举报
回复
http://www.adr.gov.cn/download/wolf24.htm
我做的24点牌游戏
超级大笨狼 2004-01-20
  • 打赏
  • 举报
回复
我们不仅雪中送碳,还锦上添花,画蛇添足,画猪还要戴朵花!
VBS短暂的美!
超级大笨狼 2004-01-20
  • 打赏
  • 举报
回复
把函数名换成一个字母D比较好看,取大写DATE的意思
<SCRIPT LANGUAGE=vbs>
Function D(x)
if int(split(x,"-")(2)/10)=0 then D=D & F(split(x,"-")(2)) else _
if split(x,"-")(2) mod 10 =0 then D=D & F(int(split(x,"-")(2)/10)) & "十" else _
D=D & F(int(split(x,"-")(2)/10)) & "十" & F(split(x,"-")(2) mod 10)
D=F(split(x,"-")(0)) & "年" & MonthName(split(x,"-")(1),True) & replace(D,"一十","十") & "日"
end Function
Function F(x)
for i=1 to len(x)
if mid(x,i,1)="0" then F=F & "零" else F=F & left(MonthName(mid(x,i,1),True),1)
next
end Function
</SCRIPT>
超级大笨狼 2004-01-20
  • 打赏
  • 举报
回复
:-),9行代码,日期转化汉字最短版,好象不能再短了
超级大笨狼 2004-01-20
  • 打赏
  • 举报
回复
重新粘一遍
<SCRIPT LANGUAGE=vbs>
Function EEE(x)
if int(split(x,"-")(2)/10)=0 then EEE=EEE & F(split(x,"-")(2)) else _
if split(x,"-")(2) mod 10 =0 then EEE=EEE & F(int(split(x,"-")(2)/10)) & "十" else _
EEE=EEE & F(int(split(x,"-")(2)/10)) & "十" & F(split(x,"-")(2) mod 10)
EEE=F(split(x,"-")(0)) & "年" & MonthName(split(x,"-")(1),True) & replace(EEE,"一十","十") & "日"
end Function
Function F(x)
for i=1 to len(x)
if mid(x,i,1)="0" then F=F & "零" else F=F & left(MonthName(mid(x,i,1),True),1)
next
end Function
</SCRIPT>
超级大笨狼 2004-01-20
  • 打赏
  • 举报
回复
一共9行代码!
<SCRIPT LANGUAGE=vbs>
Function EEE(x)
if int(split(x,"-")(2)/10)=0 then EEE=EEE & F(split(x,"-")(2)) else _
if split(x,"-")(2) mod 10 =0 then EEE=EEE & F(int(split(x,"-")(2)/10)) & "十" else _
EEE=EEE & F(int(split(x,"-")(2)/10)) & "十" & F(split(x,"-")(2) mod 10)
EEE=F(split(x,"-")(0)) & "年" & MonthName(split(x,"-")(1),True) & replace(EEE,"一十","十") & "日"
end Function
Function F(x)
for i=1 to len(x)
if mid(x,i,1)="0" then F=F & "零" else F=F & left(MonthName(mid(x,i,1), True),1)
next
end Function
</SCRIPT>
DeltaCat 2004-01-20
  • 打赏
  • 举报
回复
同样支持 只有年月 的形式
DeltaCat 2004-01-20
  • 打赏
  • 举报
回复
受郎兄的启发,也用了 MONTHNAME 函数,如果去掉日期合法性验证的 14 行
DeltaCat 2004-01-20
  • 打赏
  • 举报
回复
Function sjcatCDate(sDate,DelimeterChar)
Dim tmpArr, dArr
If Not IsDate(sDate) Then
sjcatCDate = "非法日期"
exit function
End If

tmpArr = Split(sDate,DelimeterChar)
If not IsArray(tmpArr) Then
sjcatCDate = "非法日期"
exit function
End If
dArr = array("零","一","二","三","四","五","六","七","八","九")
For i = 0 to 9
tmpArr(0) = Replace(tmpArr(0),CStr(i),dArr(i))
Next
tmpArr(0) = tmpArr(0) & "年"
tmpArr(1) = MonthName(CInt(tmpArr(1)))

If UBound(tmpArr) = 2 Then
tmpArr(2) = CInt(tmpArr(2))
If Len(tmpArr(2)) = 2 Then
tmpArr(2) = Replace(dArr(CInt(Left(tmpArr(2),1))) & "十" & dArr(CInt(Right(tmpArr(2),1))) & "日","零","")
Else
tmpArr(2) = dArr(tmpArr(2)) & "日"
End If
End If

sjcatCDate = Join(tmpArr,"")
End Function
  • 打赏
  • 举报
回复
up
紫郢剑侠 2004-01-20
  • 打赏
  • 举报
回复
我还是喜欢JS.
超级大笨狼 2004-01-19
  • 打赏
  • 举报
回复
技巧提示:
msgbox left(MonthName(1,True)
msgbox left(MonthName(2,True)
msgbox left(MonthName(3,True)
大家运行一下就明白了,用这个可以把12以内的数字转成中文


MonthName 函数
WeekDayName 函数
返回表明指定月份的字符串。

MonthName(month[, abbreviate])
参数
month
必选项。月份的数值定义。例如,一月是 1,二月是 2,以此类推。
Abbreviate
可选项。Boolean 值,表明月份名称是否简写。如果省略,默认值为 False,即不简写月份名称。
说明
下面的示例利用MonthName 函数为日期表达式返回月份的缩写:

Dim MyVar
MyVar = MonthName(10, True) ' MyVar 包含 "Oct"。
超级大笨狼 2004-01-19
  • 打赏
  • 举报
回复
---------------------------
VBScript
---------------------------
一零零二年十月三十一日
---------------------------
确定
---------------------------
超级大笨狼 2004-01-19
  • 打赏
  • 举报
回复
加上判断,并没有增加行数,祝大家新年愉快!
日期转化完美版:
<SCRIPT LANGUAGE=vbs>
Dim A,B,C,D,E
A="1002-10-31"
B=split(A,"-")(0)
C=split(A,"-")(1)
D=split(A,"-")(2)
if int(D/10)=0 then E=E & F(D) else _
if D mod 10 =0 then E=E & F(int(D/10)) & "十" else _
E=E & F(int(D/10)) & "十" & F(D mod 10)
E=F(B) & "年" & MonthName(C,True) & replace(E,"一十","十") & "日"
msgbox E
Function F(x)
for i=1 to len(x)
if mid(x,i,1)="0" then F=F & "零" else F=F & left(MonthName(mid(x,i,1), True),1)
next
end Function
</SCRIPT>
超级大笨狼 2004-01-19
  • 打赏
  • 举报
回复
哦,忘记了考虑2003的情况了,不好意思拉~~~~
超级大笨狼 2004-01-19
  • 打赏
  • 举报
回复
包括定义赋值显示在内14行代码搞定!(下划线分的算一行)
<SCRIPT LANGUAGE=vbs>
Dim A,B,C,D,E
A="1982-10-31"
B=split(A,"-")(0)
C=split(A,"-")(1)
D=split(A,"-")(2)
if int(D/10)=0 then E=E & F(D) else _
if D mod 10 =0 then E=E & F(int(D/10)) & "十" else _
E=E & F(int(D/10)) & "十" & F(D mod 10)
E=F(B) & "年" & MonthName(C,True) & replace(E,"一十","十") & "日"
msgbox E
Function F(x)
for i=1 to len(x)
F=F & left(MonthName(mid(x,i,1), True),1)
next
end Function
</SCRIPT>
加载更多回复(16)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧