VB.Net-Forum - Beitragsübersicht -
ThemaV05: Aus Guthaben einen Zeitwert berechnen!
Von Cheffboss
Datum 21. September 2019 um 16:44:28
Frage Moin! :)
Ich möchte gerne ein Programm entwickeln.
In diesen man sein Guthaben auflädt. - Und dafür ein Zeitwert bzw. eine Surfzeit bekommt.
In meinem Beispiel, lädt der Benutzer sein virtuelles Guthaben auf, und bekommt dafür eine Surfzeit(Benutzungszeit) zugeteilt.
Wenn ich nun pro Stunde das Guthaben auflade, sind es pro 1 Euro genau 1 Stunde Benutzungszeit(Surfzeit).
Da der Benutzer aber diese Daten ändern kann, benötige ich einen Code dieser alles automatisch richtig berechnet.
Und das ist das Problem, da ich gerade keine Lösung finde!
Ich hoffe, man könnte mein Vorhaben und mein Problem gut verstehen.
Freue mich auf eure Hilfe!
BIG THX
    Public Function RestlicheSurfzeitAuslesen() As String
' Aus der Variable "guthaben", die Restlichesurzeit berechnen lassen.
' (Siehe Rechenformel In Form1...)
' Der Benutzer kann den Stundenwert beliebig ändern.
' Jetzt arbeiten wir zum Beispiel mit 1 Euro pro 1 Stunde!
Return "1:00:00 h"
End Function
Bilder:
https://s17.directupload.net/images/190921/7kzbtej4.png
https://s17.directupload.net/images/190921/g3mwvr3i.png

Quellcode:
https://workupload.com/file/BSfCFXDZ
(Ohne EXE-Datei)
Antwort:
Von Nico
E-Mail nico.schertler@studentpartners.de
Datum 21. September 2019 um 17:32:41
Antwort Hallo,

als erstes solltest du dir überlegen, in welcher Form das aktuelle Guthaben gespeichert werden soll - entweder als Zeit oder als Geld. Entscheide dich für eines von beiden und berechne das andere. In folgendem Beispiel
speichere ich Geld und berechne daraus die Restzeit.
Als nächstes solltest du die korrekten Datentypen verwenden. Geld wird typischerweise als Decimal dargestellt. Zeitspannen als TimeSpan. Ein String sollte ausschließlich zur Darstellung verwendet werden. Und alle Datentypen
erlauben dir mit ToString, das in vielen Fällen sowieso automatisch benutzt wird, eine entsprechende Umrechnung. Speichere deine Daten nie als String. Dann kannst du nichts Sinnvolles damit machen.
Und schließlich solltest du dir noch über die gesamte Struktur ein paar Gedanken machen. Hier scheint es mir sinnvoll, eine Klasse Zeitkonto zu haben, die für die Verwaltung von Geld und Zeit zuständig ist. Deine Form oder
wo auch immer du das Konto verwenden möchtest, sollten dann keine Logik enthalten, sondern nur darstellen.
Hier ein Beispiel:
Class Zeitkonto
'Umrechnungsfaktor - je nach Anwendungsfall kann dieser auch konstant gewählt werden
Public Const EuroProStunde As Decimal = 1

'Das In diesem Konto gespeicherte Guthaben In Euro
Public Property GuthabenInEuro As Decimal

'Die abgeleitete Restzeit
Public ReadOnly Property Restzeit() As TimeSpan
Get
Return TimeSpan.FromHours(GuthabenInEuro / EuroProStunde)
End Get
End Property

End Class
Und das kann dann bspw. so verwendet werden:
'Ein neues Konto anlegen
Dim konto As New Zeitkonto

'10 Euro einzahlen
konto.GuthabenInEuro += 10

'Und die verbleibende Restzeit anzeigen
Console.WriteLine(konto.Restzeit)
Nico
[ Antwort schreiben | Zurück zum VB.Net-Forum | Forum-Hilfe ]
Antworten
V05: Aus Guthaben einen Zeitwert berechnen! - Cheffboss 21. September 2019 um 16:44:28
Re: Aus Guthaben einen Zeitwert berechnen! - Nico 21. September 2019 um 17:32:41

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  VB 2005
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum VB.Net-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB.Net | VB/VBA-Forum | DirectX | DirectX-Forum | Chat | Ausschreibungen | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015