|
| |

VB.NET - Ein- und Umsteiger| Re: Enum und Class (Überlauf verhindern) | |  | | Autor: Manfred X | | Datum: 26.09.14 06:13 |
| Du versuchst etwas zu programmieren, was das Net-Framework bereits komfortabel
zur Verfügung stellt.
In Deinem Code fehlt bei der Berechnung z.B. die Kombination der gespeicherten Angaben
von Stunde, Minute, Sekunde zu EINEM Zeitintervall (Anzahl Gesamt-Sekunden).
Rechne das als "Anzahl" übergebene Zeitintervall zunächst in Sekunden um - gemäß dem
gegebenen Enumerationswert. Beziehe Deine beiden Hilfsfunktionen (zuSekunden, zuZeit)
bei der Methode "Addieren" ein.
Verwende bei allen Variablen Integer statt Short.
Sub Addieren2(ByVal Anzahl As Integer, ByVal Einheit As Zeiteinheit)
Select Case Einheit
Case Zeiteinheit.Sekunde
'
Case Zeiteinheit.Minute
Anzahl *= 60
Case Zeiteinheit.Stunde
Anzahl *= 3600
End Select
zuZeit(zuSekunden() + Anzahl)
End Sub Am besten, Du erarbeitest Dir zunächst, wie die Framework-Strukturen zur Verarbeitung von
Zeitangaben implementiert worden sind.
Dazu einige Hinweise:
Zeitangaben werden im Net-Framework durch eine Zeitachse abgebildet.
Deren Einheit nennt sich: Ticks
Diese Zahl dieser (diskreten) Zeitpunkte, die auf dieser Achse darstellbar sind, ist so groß,
daß für die Speicherung von Tick-Werten der Datentyp "Long" benötigt wird.
Um einen bestimmten Zeitpunkt auf dieser Achse anzugeben, verwendet man die Structure Date.
Jeder Zeitpunkt kann auch im Kalender durch die Angabe eines Datums und einer Uhrzeit
(also Jahr, Monat, Tag, Stunde, Minute, Sekunde, Millisekunde) dargestellt werden.
Der Konstruktor einer "Date"-Variable bietet verschiedene Möglichkeiten, um einen Zeitpunkt
einzutragen: z.b. direkt als Ticks oder kalendarisch als Datum durch Jahr, Monat, Tag.
Jeder kalendarische Bestandteil eines Zeitpunktes, der als Wert in eine Date-Variable eingetragen ist,
kann über eine Date-Methode separat ermittelt werden (Year, Month, Day, Hour, Minute,
Second, Millisecond). Es gibt weitere Abfrage-Methoden, z.B. TimeOfDay, DayOfYear
Die mögliche Spannweite der Zeitachse kann über die Konstanten "Date.MinValue" und
"Date.MaxValue" abgefragt werden.
Um ein Zeitintervall auf dieser Achse darzustellen, gibt es die Structure Timespan.
Wenn Du herausfinden möchtest, in wie viele Ticks eine Sekunde auf dieser Achse unterteilt ist,
informiert z.B. die Konstante "Timespan.TicksPerSecond" über den Umrechnungsfaktor.
Die Überladungen des Konstruktors einer Timespan-Variable ermöglichen die Eintragung eines
Zeitintervalls z.B. als direkt Ticks oder als eine Kombination von Stunden, Minuten, Sekunden.
Um die Angabe eines Zeitpunkts aus Datum und Uhrzeit, die als String vorliegt, in den Wert einer
Date-Variable zu wandeln, gibt es die "Date.Tryparse"-Methode, deren Rückgabe darüber
informiert, ob die als erster Parameter angegebene Zeichenfolge sich in einen Zeitpunkt auf der
Achse umwandeln läßt. Die "Timespan.TryParse"-Methode wandelt ein als String angegebenes
Zeitintervall in eine "Timespan"-Variable um.
Um zu einem als Date-Wert gegebenen Zeitpunkt ein als Timespan-Wert gegebenes Zeitintervall
zu addieren, gibt es bei Date-Variablen die "Add"-Methode.
Es kann aber auch direkt z.B. eine Anzahl von Stunden (AddHours) oder Minuten (AddMinutes)
addiert werden. Dabei sind negative Werte und Bruchteile möglich.
(Es gibt auch eine "Subtract"-Methode mit einigen Überladungen.)
Beitrag wurde zuletzt am 26.09.14 um 06:32:07 editiert. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevZIP40 Pro DLL 
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere Infos
|