VB-Homepage Tipp 116

Zeiten addieren

Der Tipp entstammt einer Anfrage, wie es möglich ist, Zeiten zu addieren.

Ob dies nun geschehen soll, um auszuwerten, wie lange jemand etwas bestimmtes tut oder wie lange er angemeldet ist.
(hier wäre allerdings die Windowslaufzeit zur Auswertung besser),
allen gemein ist, die ermittelte Zeit in ein Format zu bekommen,
das sich addieren läßt. Denn mit 1:34 und 7:22 (h:nn) geht dies nicht.

Um dies ausführen zu können werden die Zeiten in Sekunden umgerechnet.
Als anschauliches Beispiel gibt es hier ein VB4-Projekt, das eine Möglichkeit der Realisierung der Aufgabenstellung beinhaltet.

Die Vorgehensweise unter VB3 ist identisch, wenn Sie nur die *.frm Datei laden und einem VB3-Projekt hinzufügen, sollte es auch gehen.

addtime.vbp
Form=addtime.frm
ProjWinSize=152,489,248,215
ProjWinShow=2
ExeName32="addtime.exe"
Name="Projekt1"
HelpContextID="0"
StartMode=0
VersionCompatible32="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0

addtime.frm
VERSION 4.00
Begin VB.Form Form1
Caption = "VB-Homepage Tipp"
ClientHeight = 3150
ClientLeft = 1485
ClientTop = 1650
ClientWidth = 4935
Height = 3555
Left = 1425
LinkTopic = "Form1"
ScaleHeight = 3150
ScaleWidth = 4935
Top = 1305
Width = 5055
Begin VB.CommandButton Command2
Caption = "mehrer Zeiten nach dem selben Prinzip zusammen fassen."
Height = 615
Left = 2400
TabIndex = 9
Top = 2280
Width = 2295
End
Begin VB.Timer Timer1
Interval = 1000
Left = 0
Top = 240
End
Begin VB.CommandButton Command1
Caption = "Gesamtzeit anhand der Zeit seit Start ermitteln"
Height = 615
Left = 120
TabIndex = 0
Top = 2280
Width = 2055
End
Begin VB.Line Line2
X1 = 120
X2 = 4800
Y1 = 1680
Y2 = 1680
End
Begin VB.Line Line1
X1 = 2280
X2 = 2280
Y1 = 1800
Y2 = 3120
End
Begin VB.Label Label11
BorderStyle = 1 'Fixed Single
Caption = "21776"
Height = 255
Left = 4080
TabIndex = 12
Top = 1920
Width = 615
End
Begin VB.Label Label10
BorderStyle = 1 'Fixed Single
Caption = "7847"
Height = 255
Left = 3240
TabIndex = 11
Top = 1920
Width = 615
End
Begin VB.Label Label9
BorderStyle = 1 'Fixed Single
Caption = "34879"
Height = 255
Left = 2400
TabIndex = 10
Top = 1920
Width = 615
End
Begin VB.Label Label8
Caption = "Das wäre also die zu ermittelnde Zeit, die könnte jedesmal ermittelt und einfach addiert werden"
Height = 495
Left = 720
TabIndex = 8
Top = 1080
Width = 4095
End
Begin VB.Label Label7
BorderStyle = 1 'Fixed Single
Height = 255
Left = 3360
TabIndex = 7
Top = 360
Width = 735
End
Begin VB.Label Label6
AutoSize = -1 'True
Caption = "="
Height = 195
Left = 3120
TabIndex = 6
Top = 360
Width = 90
End
Begin VB.Label Label5
Caption = "Ermitteln einer Zeit"
Height = 255
Left = 0
TabIndex = 5
Top = 0
Width = 3015
End
Begin VB.Label Label4
Alignment = 1 'Right Justify
Caption = "Zeit seit Start (in Sek.) :"
Height = 255
Left = 0
TabIndex = 4
Top = 720
Width = 2175
End
Begin VB.Label Label3
BorderStyle = 1 'Fixed Single
Height = 255
Left = 2280
TabIndex = 3
Top = 720
Width = 1095
End
Begin VB.Label Label2
Alignment = 1 'Right Justify
Caption = "Startzeit (Timer) :"
Height = 255
Left = 840
TabIndex = 2
Top = 360
Width = 1335
End
Begin VB.Label Label1
BorderStyle = 1 'Fixed Single
Height = 255
Left = 2280
TabIndex = 1
Top = 360
Width = 735
End
End
Attribute VB_Name = "Form1"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Private Sub Command1_Click()
stunden = Int(Val(Label3) / 60 / 60)
minuten = Int(Val(Label3.Caption) / 60)
minuten = minuten / 60
minuten = minuten - Int(minuten)
minuten = minuten * 60
MsgBox "Seit dem Programmstart sind " + Chr(13) + Trim(Format(stunden, "00")) + ":" + Trim(Format(minuten, "00")) + " Stunden vergangen"
End Sub
Private Sub Command2_Click()
gesamtzeit = Val(Label9) + Val(Label10) + Val(Label11)
stunden = Int(gesamtzeit) / 60 / 60
minuten = Int(gesamtzeit) / 60
minuten = minuten / 60
minuten = minuten - Int(minuten)
minuten = minuten * 60
MsgBox "Insgesamt wurde eine Zeit von" + Chr(13) + Trim(Format(stunden, "00")) + ":" + Trim(Format(minuten, "00")) + " Stunden ermittelt"
End Sub
Private Sub Form_Load()
label1.Caption = Int(Timer)
Label7.Caption = Format(Time, "HH:NN:SS")
End Sub
Private Sub Timer1_Timer()
Label3.Caption = Int(Timer) - label1.Caption
End Sub

Tipp-Download

Quelle :

Zurück zur Übersichtsseite