Hallo mal wieder, ich experimentiere mit Enumerationen und Klassen. Ich möchte eine einfache Konsole öffnen die mir die Zeiten: 10:24:36 , 11:14:36 und 11:16:51 untereinander ausgibt. Dabei sollen einfach nur 50 Minuten zur Ausgangszeit (10:24:36) und 135 Sekunden zur nächsten Zeit (11:14:36) dazugerechnet werden. Allerdings wirft mir der Compiler die Fehlermeldung „OverflowException wurde nicht behandelt. (Dividieren Sie nicht durch 0)“ aus. Allerdings kann ich beim besten willen den fehler nicht finden.
Hier der Code:
'---------------------------CODE--------------------------------------------Imports System.Console
Enum Zeiteinheit As Short
Stunde = 3600
Minute = 60
Sekunde = 1
End Enum
Class Zeit
Private m_std As Short
Private m_min As Short
Private m_sek As Short
Public Sub New(ByVal std As Integer, _
ByVal min As Integer, _
ByVal sek As Integer)
std = m_std
min = m_min
sek = m_sek
m_std = 10
m_min = 24
m_sek = 36
End Sub
Public Sub addieren(ByVal anzahl As Short, ByVal einheit As Zeiteinheit)
Dim sek As Integer
sek = zusekunden(m_std, m_min, m_sek)
anzahl = 50
einheit = Zeiteinheit.Minute
End Sub
Public Function zusekunden(ByVal istunde As short, _
ByVal iminute As Short, _
ByVal isekunde As Short) As Integer
istunde = m_std * Zeiteinheit.Stunde ‚hier wird der Fehler angezeigt!
iminute = m_min * Zeiteinheit.Minute
isekunde = m_sek
zusekunden = istunde + iminute + isekunde
End Function
Sub Anzeigen()
WriteLine("Zeit: {0}:{1}:{2}", m_std, m_min, m_sek)
End Sub
Private Sub zuZeit(ByVal Sekunden As Integer)
m_sek = Sekunden Mod 60
m_min = (Sekunden \ 60) Mod 60
m_std = Sekunden \ 60 * 60
End Sub
End Class
Module abc
Sub Main()
Dim z As New Zeit(10, 24, 36)
z.Anzeigen()
z.Addieren(50, Zeiteinheit.Minute)
z.Anzeigen()
z.Addieren(135, Zeiteinheit.Sekunde)
z.Anzeigen()
ReadLine()
End Sub
End Module
'---------------------------CODE--------------------------------------------
Wäre spitze wenn mir jemand helfen könnte…
Vielen Dank im vorraus.
dracoulars
Hier der Code:
'---------------------------CODE--------------------------------------------Imports System.Console
Enum Zeiteinheit As Short
Stunde = 3600
Minute = 60
Sekunde = 1
End Enum
Class Zeit
Private m_std As Short
Private m_min As Short
Private m_sek As Short
Public Sub New(ByVal std As Integer, _
ByVal min As Integer, _
ByVal sek As Integer)
std = m_std
min = m_min
sek = m_sek
m_std = 10
m_min = 24
m_sek = 36
End Sub
Public Sub addieren(ByVal anzahl As Short, ByVal einheit As Zeiteinheit)
Dim sek As Integer
sek = zusekunden(m_std, m_min, m_sek)
anzahl = 50
einheit = Zeiteinheit.Minute
End Sub
Public Function zusekunden(ByVal istunde As short, _
ByVal iminute As Short, _
ByVal isekunde As Short) As Integer
istunde = m_std * Zeiteinheit.Stunde ‚hier wird der Fehler angezeigt!
iminute = m_min * Zeiteinheit.Minute
isekunde = m_sek
zusekunden = istunde + iminute + isekunde
End Function
Sub Anzeigen()
WriteLine("Zeit: {0}:{1}:{2}", m_std, m_min, m_sek)
End Sub
Private Sub zuZeit(ByVal Sekunden As Integer)
m_sek = Sekunden Mod 60
m_min = (Sekunden \ 60) Mod 60
m_std = Sekunden \ 60 * 60
End Sub
End Class
Module abc
Sub Main()
Dim z As New Zeit(10, 24, 36)
z.Anzeigen()
z.Addieren(50, Zeiteinheit.Minute)
z.Anzeigen()
z.Addieren(135, Zeiteinheit.Sekunde)
z.Anzeigen()
ReadLine()
End Sub
End Module
'---------------------------CODE--------------------------------------------
Wäre spitze wenn mir jemand helfen könnte…
Vielen Dank im vorraus.
dracoulars
Comment