澳門就要回歸祖國的懷抱
而且
千年蟲
(
年)也一步步地在向我們逼近
對於這些即將到來的時刻
我們最好做一個倒計時
來時刻提醒我們它們的到來
而且如果在你的網頁上加上一個澳門回歸的倒計時牌
那麼也會使用你的主頁立意更加新穎
下面我們來用VBScript來實現這個功能
要實現倒計時
主要用到的是一個時間函數
DateDIFF()
它的作用是求出兩個日期之間的時間間隔
它的格式如下
DateDIFF(format
Date
Date
)
其中
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(
s
now
mydate)
dd=fix(datesub/(
*
*
))
hh=fix((datesub
dd*
*
*
)/(
*
))
mm=fix((datesub
dd*
*
*
hh*
*
)/
)
ss=fix(datesub
dd*
*
*
HH*
*
MM*
)
strtip=
離
年還有
strtip=strtip + cstr(dd) +
天
strtip=strtip + cstr(HH) +
小時
strtip=strtip + cstr(MM) +
分鐘
strtip=strtip + cstr(SS) +
秒
lblaumen
caption=strtip
end sub
>
< /script >
以上僅是實現了一個最簡單的倒計時牌
我們還可以再此基礎上對其進行改造和完善
如果覺得標簽的拌動太厲害的話
可以把一個標簽分成幾個標簽
分別用來顯示天
小時
分
秒
如果要重新顯示的值和原值相等
則不對標簽的內容進行刷新
只有在出現變化的時候
才對其進行刷新操作
這樣就不會出現太明顯的抖動了
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19292.html