asp处理长整型这么难吗?!!!!

zhitaoliu 2003-10-09 12:48:52
用asp读取oracle中的出生日期字段(数值型,有的超过32767)遇到长整型时原来的函数便出错,用clng()处理变量提示“无效使用null:clng”困惑!迷茫!!无助!!!求解!!!!!拜托!!!!!!
函数如下:
FUNCTION showbirthday(csrqs)
dim tian,jiliang,yue,eryue,rns,rnys,pns,pnys,pingnian,runnian,niancha
dim year,month,date
pingnian=365
runnian=365*4+1
niancha=(365*4+1)*365
rns=cint(csrqs)\runnian '出错处
rnys=cint(csrqs) mod runnian '出错处
pns=rnys\pingnian
pnys=rnys mod pingnian
if rnys=0 then
year=1899+rns*4
month=12
date=31
else
select case pns
case 0
year=1899+rns*4+1
tian=rnys
case 1
if pnys<=1 then
year=1899+rns*4+pns
tian=rnys
else
year=1899+rns*4+pns+1
tian=pnys-1
end if
case 2
if pnys<=1 then
year=1899+rns*4+pns
tian=rnys-366
else
year=1899+rns*4+pns+1
tian=pnys-1
end if
case 3
if pnys<=1 then
year=1899+rns*4+pns
tian=rnys-366-365
else
year=1899+rns*4+pns+1
tian=pnys-1
end if
case 4
year=1899+rns*4
tian=365-1
end select
end if
yue=1
jiliang=31
if tian=0 then
year=year-1
month=12
date=31
else
if (year mod 4)=0 then
eryue=29
else
eryue=28
end if
do while (yue<12) and (tian>jiliang)
select case yue
case 1,3,5,7,8,10
jiliang=31
case 4,6,9,11
jiliang=30
case 2
jiliang=eryue
end select
if tian>jiliang then
yue=yue+1
tian=tian-jiliang
end if
loop
month=yue
date=tian
end if
showbirthday=cstr(year)&"年"&cstr(month)&"月"&cstr(date)&"日"
end function
...全文
198 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yllaji 2003-10-09
  • 打赏
  • 举报
回复
老大 问题还没解决啊?

Clng 应该没问题啊? 因为 最大 可以到 21个亿 呢

难道 有负数?

CSng 担精度实数 支持小数点

CDbl 双精度实数……

如果有小数点 最后 你再取个整 把小数点以后的都扔了.


“无效使用null:clng” 感觉 你处理的东西是 null 啊大哥,就是不存在的意思。

你分析分析
出生日期字段(数值型,有的超过32767)

如果是这些数据出错 你删除掉这些数据算了!
poolnet 2003-10-09
  • 打赏
  • 举报
回复
clng

28,391

社区成员

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

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