Dim?tCount?As?Integer?'用來(lái)計(jì)數(shù)
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到正藍(lán)網(wǎng)站設(shè)計(jì)與正藍(lán)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋正藍(lán)地區(qū)。
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As
System.EventArgs)?Handles?MyBase.Load
tCount?=?10
Timer1.Interval?=?1000?'每秒執(zhí)行一次
Timer1.Enabled?=?True
End
Sub
Private?Sub
Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As
System.EventArgs)?Handles?Timer1.Tick
tCount?-=?1
If?tCount?=?0?Then
MessageBox.Show("時(shí)間到")
Timer1.Enabled?=?False
End?If
End
Sub
DateAdd函數(shù) 返回
返回包含一個(gè)日期的 Variant (Date),這一日期還加上了一段時(shí)間間隔。
語(yǔ)法
DateAdd(interval, number, date)
DateAdd 函數(shù)語(yǔ)法中有下列命名參數(shù):
部分 描述
interval 必要。字符串表達(dá)式,是所要加上去的時(shí)間間隔。
number 必要。數(shù)值表達(dá)式,是要加上的時(shí)間間隔的數(shù)目。其數(shù)值可以為正數(shù)(得到未來(lái)的日期),也可以為負(fù)數(shù)(得到過(guò)去的日期)。
date 必要。Variant (Date) 或表示日期的文字,這一日期還加上了時(shí)間間隔。
DateDiff函數(shù) 返回
返回 Variant (Long) 的值,表示兩個(gè)指定日期間的時(shí)間間隔數(shù)目。
語(yǔ)法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函數(shù)語(yǔ)法中有下列命名參數(shù):
部分 描述
interval 必要。字符串表達(dá)式,表示用來(lái)計(jì)算date1 和 date2 的時(shí)間差的時(shí)間間隔
Date1□date2 必要;Variant (Date)。計(jì)算中要用到的兩個(gè)日期。
Firstdayofweek 可選。指定一個(gè)星期的第一天的常數(shù)。如果未予指定,則以星期日為第一天。
firstweekofyear 可選。指定一年的第一周的常數(shù)。如果未予指定,則以包含 1 月 1 日的星期為第一周。
一樓風(fēng)中的奶牛的做法很棒,建議樓主采納他的回答。
只是其中有一個(gè)Bug,就是“倒數(shù)第二次累計(jì)分鐘數(shù)為59,累計(jì)秒數(shù)達(dá)到60的時(shí)候,會(huì)出現(xiàn)**:60:**”。例如{"10:57:35", "2:02:51"},我這里做了修改,供參考。
另外,AddByInts中不需要進(jìn)行循環(huán)和Select判斷,可以簡(jiǎn)化。
同時(shí),為了說(shuō)明類和結(jié)構(gòu)的關(guān)系,這里改用類。
也請(qǐng)一樓風(fēng)中的奶牛勿怪罪在下?。?/p>
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Dim str As String() = {"10:30:35", "2:02:51", "17:00:35", "2:02:51"}
Dim str As String() = {"10:57:35", "2:02:51"}
Dim time As TimeSerial = New TimeSerial
For Each dt As String In str
time.Add(dt)
Next
MsgBox(time.ToString)
End Sub
End Class
Public Class TimeSerial
Public Hour As Integer ' 時(shí)間的小時(shí)部分
Public Minute As Integer ' 時(shí)間的分鐘部分
Public Second As Integer ' 時(shí)間的秒鐘部分
' 合并添加新的時(shí)間值
' param name="value"文本時(shí)間格式(00:00:00)/param
Public Sub Add(ByVal value As String)
Dim arr As String() = Split(value, ":")
Dim dts(arr.Length - 1) As Integer
For i As Integer = 0 To arr.Length - 1
dts(i) = CInt(Val(arr(i)))
Next
AddByInts(dts)
End Sub
' 合并添加新的時(shí)間值
' param name="value"時(shí)間值(僅計(jì)算:時(shí)、分、秒)/param
Public Sub Add(ByVal value As Date)
Dim dts(2) As Integer
dts(0) = value.Hour
dts(1) = value.Minute
dts(2) = value.Second
AddByInts(dts)
End Sub
Private Sub AddByInts(ByVal value As Integer())
Second += value(2)
If Second = 60 Then
Minute += Int(Second / 60)
Second = Second Mod 60
End If
Minute += value(1)
If Minute = 60 Then
Hour += Int(Minute / 60)
Minute = Minute Mod 60
End If
Hour += value(0)
End Sub
' 獲取時(shí)間的文本格式(00:00:00)
Public Overrides Function ToString() As String
Return Hour ":" Minute ":" Second
End Function
End Class
這種功能用不到TIMER,TIMER控件用在這種地方也不適合。(假如你所統(tǒng)計(jì)的時(shí)間很短,在幾分中內(nèi)話,可以使用,假如你統(tǒng)計(jì)的時(shí)間很長(zhǎng):幾小時(shí)、幾天幾夜,建議改用以下方式):
在你需要開(kāi)始計(jì)時(shí)的地方加入一個(gè)記錄當(dāng)前時(shí)間,在你想結(jié)束的地方也得到一個(gè)當(dāng)前時(shí)間。然后將兩個(gè)時(shí)間相減。
希望以上思路可以幫到你。
'添加一個(gè)label標(biāo)簽名字label1 用來(lái)顯示時(shí)間
'再添加一個(gè)timer控件 名字timer1 interval屬性=1000 用來(lái)計(jì)時(shí)
'窗體添加代碼
Dim t As Date '用來(lái)記錄時(shí)間
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Timer1.Tick
t = t.AddSeconds(1)
Label1.Text = "登錄時(shí)間:" t.TimeOfDay.ToString
End Sub
Private?Sub?Form_Load()
Dim?a?As?Date,?b?As?Date
Dim?c?As?Integer
a?=?#12/31/2013#
b?=?Date
'是不是要考慮作為起始日期的那個(gè)星期里要計(jì)數(shù)幾次
c?=?DateDiff("d",?a,?b)?'計(jì)算相差多少天
Text1.Text?=?(c?\?7)?*?3?+?Val(Choose(c?Mod?7?+?1,?"0",?"0",?"1",?"1",?"2",?"2",?"2"))
End?Sub
大約是這個(gè)意思,但是應(yīng)該要考慮固定起始的那天的影響