日期:2009-01-16  浏览次数:20908 次

碰到了关于日期计算的问题,解决了,发现好多朋友也有一样的问题
不知道大家解决了没有,我把我的方法贴出来,希望能给大家带来帮助
如果哪里写的不好,或者错误,不要笑话!!

我可是第一次发表自己的想法,,,心里斗争非常激烈。。。
===============================
为了大家好理解,用vbscript编写=
理解了,用什么都好写 :)_______=
===============================

<script language=vbscript>
function CountDate(That,NowDate)

''采用掐头去尾的方法计算两个日期的时间间隔
''日期计算 日期差 时间差 日期间隔 计算日期
''nowdate是目前的日期,that是某特定的日期
''nowdate月的总天数减去that月的总天数(有可能是负数)
''再加上中间每年的总天数,就是日期的间隔了
''通过对润年润月的计算,就更加精确了。
'=========================
'=小乖的想法iamws@371.net=
'=========================

days=0'初始化天数

for i=1 to month(nowdate)-1'随月份增加天数
select case i
case 1,3,5,7,8,10,12'还记得小学一年级的数学吗?我就是背着写出来的,哈哈~~
days=days+31'1,2,5,7,8,10,腊,有31天
case 4,6,9,11
days=days+30
case 2
if year(that)/4=int(year(that)/4) then days = days+29 else days=days+28
end select
next


for i=year(that) to year(nowdate)-1'随年份增加天数
if year(that)/4=int(year(that)/4) then
days = days + 366
else
days = days + 365
end if
next


for i=1 to month(that)-1'减去原来的
select case i
case 1,3,5,7,8,10,12
days=days-31
case 4,6,9,11
days=days-30
case 2'润月处理
if year(that)/4=int(year(that)/4) then days = days-29 else days=days-28
end select
next


days=days+day(nowdate)-day(that)'该加的加,该减的减!


CountDate = days

end function
msgbox countdate("10/2/00 11:33:25 PM",now)
</script>


======================================
如果对你有帮助,请给我加加分,谢谢谢谢!=
======================================