澳门就要回归祖国的怀抱而且千年虫( 年)也一步步地在向我们逼近对于这些即将到来的时刻我们最好做一个倒计时来时刻提醒我们它们的到来而且如果在你的网页上加上一个澳门回归的倒计时牌那么也会使用你的主页立意更加新颖下面我们来用VBScript来实现这个功能 要实现倒计时主要用到的是一个时间函数 DateDIFF()它的作用是求出两个日期之间的时间间隔它的格式如下 DateDIFF(formatDateDate) 其中 format是指返回的格式我们可以按相差多少天相差多少小时或相差多少秒的格式来返回具体格式和意义请参见下表 格式 意义 Yyyy 年 Q一刻钟 M月 Y一年的一天 D天 W星期 Ww 日期 H小时 M分 S秒 在这里我们只要求出两个时间之间相差的秒数然后可以根据 天等于小时小时等于 分 分等于 秒来求出相差多少天多少小时多少分多少秒 Date 和Date 用来表示两个日期如果我们要求出 年到今天的时间差只要把 年放在 Date 的位置而把现在的时间放在 Date 的位置就可以了 现在在理论上已经可行了但是我们还必须加入一个标签用来显示时间而且要加入一个定时器来定时地刷新标签上的显示定时器的时间间隔定为多大为合适呢?这没有一个定论要根据条件而定因为本程序的倒计时是以秒为最小单位的所以我们必须能够正确地对每秒钟进行刷新也就是说定时器的间隔必须小于或等于 但是由于定时器的并不是严格地与秒相等所以即使设为也有可能秒不会及时地刷新出现间断跳跃比如显示完秒后应该是秒然后才是秒但是由于刷新不及时可能会出现显示完 秒就显示 秒的情况这就是刷新不及时造成的(但这并不影响倒计时的精确度)我们再来把定时器的时间间隔设的很小看看设为吧这样每隔大约/秒就会求一次值这是决对精确的但是又有一个问题就是如果时间间隔太小可能会抢占太多的系统时间对本来就很慢的网络来说可是个不小的负担如果折中一下可以把它设为即秒内刷新次这就能满足双方面的需要了 我们来看一下相应的程序段 < script LANGUAGE=VBScript > < ! option explicit dim MyDate 结果日期 dim datesub 时间差 dim dd 相差天数 dim hh 相差小时数 dim mm 相差分数 dim ss 相差秒数 dim strTip 标签提示 mydate=CDate() dim mytime Sub tmraumen_Timer() datesub=datediff(snowmydate) dd=fix(datesub/(**)) hh=fix((datesubdd***)/(*)) mm=fix((datesubdd***hh**)/) ss=fix(datesubdd***HH**MM*) strtip=离年还有 strtip=strtip + cstr(dd) + 天 strtip=strtip + cstr(HH) + 小时 strtip=strtip + cstr(MM) + 分钟 strtip=strtip + cstr(SS) + 秒 lblaumencaption=strtip end sub > < /script > 以上仅是实现了一个最简单的倒计时牌我们还可以再此基础上对其进行改造和完善如果觉得标签的拌动太厉害的话可以把一个标签分成几个标签分别用来显示天小时分秒如果要重新显示的值和原值相等则不对标签的内容进行刷新只有在出现变化的时候才对其进行刷新操作这样就不会出现太明显的抖动了 |