Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
Amaryllis1912
Newbie
Newbie

Anmeldedatum: 25.03.2009
Beiträge: 2

Wert aus Funktion in eine Sub übernehmen
Verfasst am: 25.03.2009, 20:28

Hallo zusammen,

habe einen Code geschrieben, der zuerst die Standardzeit (siehe Sub Main()) 10:24:36 anzeigen soll (Das funktioniert auch). Anschließend soll er 50 Minuten und danach 135 Sekunden hinzu addieren. Dazu muss ich eine Enumeration deklarieren, die ich später der Einheiten wegen zum Rechnen benutze. Außerdem muss ich einen Konstruktor definieren, der die Werte für Stunde, Minute und Sekunde übergibt (Aufruf siehe Main), er kann auch Objekte meiner Klasse Zeit (mit den Membern m_std, m_min und m_sek) erstellen.

Ich habe eine Sub zuZeit vorgegeben, die die bereits gespeicherte Zeit in Sekunden umwandelt. Dann muss ich eine Methode Addieren (Sub Addieren(ByVal Anzahl as Short, ByVal Einheit as Zeiteinheit)) definieren, die zu der gespeicherten Zeit die 50 Minuten und später 135 Sekunden addiert. Anschließend soll über die MEthode Anzeigen die neu errechnete Zeit ausgeben werden.

Das Ganze wird eine Konsolenanwendung. Sie tut nichts, als die drei Zeit-Werte auszugeben.

Habe das Gerüst auch soweit hin gekriegt, bin mir aber nicht sicher, wie ich den Konstruktor richtig hin kriege und wie ich das, was ich in der Funktion zuSekunden ausrechne, in die Sub Addieren übernehme, sodass es über die Methode Anzeigen wieder ausgegeben wird.

Ich verzweifle ein wenig und bin leider auch noch ziemlich am Anfang.

Wäre toll, wenn mir jemand helfen könnte.

Mein Code hängt unten an.

Danke!

Viele Grüße
Amaryllis

Enum Zeiteinheit As Short 'ist das kleinstmöglich?
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

'Konstruktor
Public Sub New(ByVal Stunde As Short, ByVal Minuten As Short, _
ByVal Sekunde As Short) 'Obekte der Klasse Zeit mit Zeitangaben erstellen

m_std = Stunde 'Werte für Stunde, Minute und Sekunde übergeben. Aufruf s. Main()
m_min = Minuten
m_sek = Sekunde

End Sub
'Funktion, die als Integer Anz. sek enthält,die bereits gespeichert sind
Private Function zuSekunden(ByVal Stunde As Short, ByVal Minuten As Short, _
ByVal Sekunde As Short) As Integer
zuSekunden = CInt(Stunde * Zeiteinheit.Stunde) + (Minuten * Zeiteinheit.Minute) + (Sekunde)
End Function
'Addieren der neuen Sekunden zu zuSekunden
Sub Addieren(ByVal Anzahl As Short, ByVal Einheit As Zeiteinheit)
If Einheit = Zeiteinheit.Minute Then
m_min = Anzahl * Zeiteinheit.Minute + zuSekunden(0, 50, 0)
WriteLine("Minute {0},{1},{2}", m_std, m_min, m_sek)
If Einheit = Zeiteinheit.Sekunde Then
m_sek = Anzahl * Zeiteinheit.Sekunde + zuSekunden(0, 0, 135)
WriteLine("Sekunde {0},{1},{2}", m_std, m_min, m_sek)
If Einheit = Zeiteinheit.Stunde Then
m_std = Anzahl * Zeiteinheit.Stunde
WriteLine("Stunde {0},{1},{2}", m_std, m_min, m_sek)
End If
End If
End If
End Sub

'abgebildete Sub:
'neu errechnete Zeit in Std:Min:Sek umwandeln
Private Sub zuZeit(ByVal Sekunden As Integer) 'Integer ' überall private?
m_sek = Sekunden Mod 60 'Rest, wenn ich Zahl durch 60 teile
m_min = (Sekunden \ 60) Mod 60 'sek ganzzahlig durch 60 und davon der Rest, wenn durch 60
m_std = Sekunden \ 60 * 60 'sek ganzzahlig durch 60, mal 60
End Sub
'Anzeigen, was zuZeit ausgerechnet hat
Sub Anzeigen()
WriteLine("Zeit: {0}:{1}:{2}", m_std, m_min, m_sek)
End Sub
End Class
Module abc
Sub Main()
Dim z As New Zeit(10, 24, 36)
z.Anzeigen()
'WriteLine("Erster Test bestanden: Voreinstellung: 10:24:36")
z.Addieren(50, Zeiteinheit.Minute)
z.Anzeigen()
'WriteLine("Zweiter Test bestanden: 50 Minuten addiert 11:14:36")
z.Addieren(135, Zeiteinheit.Sekunde)
z.Anzeigen()
'WriteLine("Dritter Test bestanden: 135 Sekunden addiert: 11:16:51")
ReadLine()
End Sub


End Module
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: sub, übernehmen, wert, funktion

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Problem mit always on top funktion 1108 30.10.2009, 12:26
Keine neuen Beiträge IntStr()funktion 1309 11.10.2007, 09:49
Keine neuen Beiträge TopMost Funktion unter DirectX 1023 27.07.2007, 11:48
Keine neuen Beiträge Wie Funktion nutzen ? 1214 29.06.2007, 21:59
Keine neuen Beiträge update funktion einbauen 1455 29.01.2007, 00:11
 


[ Time: 0.0826s ][ Queries: 82 (0.0432s) ][ GZIP on - Debug on ]