vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

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.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Enum und Class (Überlauf verhindern)2.475wessi25.09.14 20:38
Re: Enum und Class (Überlauf verhindern)1.456Manfred X26.09.14 06:13

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel