1.定義變量記錄鍵是否被按下,按下的累計(jì)時(shí)間
創(chuàng)新互聯(lián)專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國電信/網(wǎng)通/移動(dòng)機(jī)房,資陽主機(jī)托管服務(wù)有保障!
Dim?按下A鍵??As?Boolean
Dim?按下A鍵時(shí)間?As?Integer
2.添加一個(gè)TextBox1用于接收鍵盤事件,或者直接用窗體的鍵盤事件(確保KeyPreview為True)
在KeyDown事件中添加如下代碼:
If?e.Keycode?=?keys.A?Then?按下A鍵?=?True
在KeyUp事件中添加如下代碼:
If?e.Keycode?=?keys.A?Then?按下A鍵?=?False
3.添加一個(gè)Timer1控件,調(diào)整Timer1的Interval來決定按鍵頻率,記得要把Timer1.Enable開啟
在Tick事件中添加如下代碼:
If?按下A鍵?=?True
按下A鍵時(shí)間+=1
Call?音量設(shè)置(按下A鍵時(shí)間?*?10)
End?If
PS:?按下的秒數(shù) =?按下A鍵時(shí)間*Timer1.Interval / 1000
Module?Module1
Sub?Main()
Console.WriteLine(DateTimeAdd("01:23:45"))
Console.ReadLine()
End?Sub
'''?summary
'''?獲取時(shí)間的累加值
'''?/summary
'''?param?name="sDatetime"/param
'''?returns/returns
'''?remarks/remarks
Private?Function?DateTimeAdd(ByVal?sDatetime?As?String)?As?DateTime
Dim?sysTime?As?DateTime?=?DateTime.Now
Return?sysTime.Add(TimeSpan.Parse(sDatetime))
End?Function
End?Module
一樓風(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判斷,可以簡化。
同時(shí),為了說明類和結(jié)構(gòu)的關(guān)系,這里改用類。
也請一樓風(fēng)中的奶牛勿怪罪在下啊!
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
可以使用VB.NET中的DataTime對象的AddMonths方法:
Dim d1 As Date = Now
MsgBox(d1) '顯示現(xiàn)在的機(jī)器日期與時(shí)間
MsgBox(d1.AddMonths(2)) '顯示現(xiàn)在的機(jī)器日期加上2個(gè)月的對應(yīng)日期與時(shí)間
MsgBox(d1.AddMonths(-1)) '顯示現(xiàn)在的機(jī)器日期減掉1個(gè)月的對應(yīng)日期與時(shí)間
DataTime對象的方法很多,你可以通過在線查閱,例如:
d1.Add()
d1.AddDays()
d1.AddHours()
d1.AddMinutes()
d1.AddSeconds()
d1.AddYears()
等等!
注意:從字面意思可以理解是加,而括號里是填寫對應(yīng)的數(shù)值,當(dāng)數(shù)值為負(fù)數(shù),起到減的作用了。
文章題目:包含vb.net累計(jì)時(shí)間方法的詞條
文章URL:http://www.rwnh.cn/article46/doohseg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、建站公司、定制開發(fā)、網(wǎng)站策劃、全網(wǎng)營銷推廣、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)