VB.Net-Forum - Beitragsübersicht -
ThemaV15: Restliche Zeit berechnen
Von Progfrog19
Datum 26. Juli 2019 um 17:11:31
Frage Hallo!
Ich habe ein Programm das mir die Surfzeiten anzeigen soll.
Zum Beispiel eine Stunde für 1 Euro.
Mir wurde mitgeteilt, ich sollte anstatt mit dem guthaben mit der vergangene Zeit rechnen.
Aber leider finde ich die Lösung nicht.
Im Link ist ein Beispielcode.
Bitte um Hilfe.
Danke

Link:
https://workupload.com/file/VfyCM2Gj
Option Strict On
Public Class Form1

'Das einzige was genau ist, ist die Surfzeit.
'Nämlich die vergangene Zeit seit Programmstart.
'Und daraus muss sich das Guthaben berechnen, nicht umgekehrt.
Dim guthaben As Decimal = 1D ' 1 Euro
Dim KostenProSekundeInCent As Decimal
Dim stopwatch1 As New System.Diagnostics.Stopwatch

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
' Berechnen...
KostenProSekundeInCent = Me.NumericUpDown1.Value / 3600
guthaben -= KostenProSekundeInCent

' ---------------> BUGY
' Restliches Guthaben In verbleibende Zeit umwandeln...
Dim dtRestlicheZeit As DateTime
dtRestlicheZeit = dtRestlicheZeit.AddSeconds(guthaben / (Me.NumericUpDown1.Value / 3600))
Me.Label2.Text = dtRestlicheZeit.ToLongTimeString
' ---------------> BUGY

' Anzeigen...
Me.Label1.Text = String.Format("Surfzeit:{0}{1} min", Environment.NewLine, (stopwatch1.Elapsed.TotalSeconds * guthaben / 60).ToString("0#.#0"))
Me.Label3.Text = guthaben.ToString("C")
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Timer1.Interval = 1000 : Timer1.Enabled = True : stopwatch1.Start()
End Sub

End Class
Antwort:
Von Nico
E-Mail nico.schertler@studentpartners.de
Datum 26. Juli 2019 um 17:31:58
Antwort Du hast ein Problem bei der Umrechnung. Dein Guthaben ist in Euro, deine Kosten in Cent, also:
guthaben -= KostenProSekundeInCent / 100D
Außerdem solltest du hier auch die berechneten KostenProSekunde verwenden und nicht noch mal neu berechnen. Ansonsten kommt es schnell zu Inkonsistenzen, wenn du etwas ändern willst:
dtRestlicheZeit = dtRestlicheZeit.AddSeconds(guthaben / (KostenProSekundeInCent / 100D))
Gib deinen Steuerelementen bitte auch sinnvolle Namen. Label1, Timer1 usw. helfen niemandem. Du solltest auch sicherstellen, dass das Guthaben positiv ist, bevor du dieses in eine Zeit umrechnest. Ansonsten kommt es zu einem
Fehler.
[ Antwort schreiben | Zurück zum VB.Net-Forum | Forum-Hilfe ]
Antworten
V15: Restliche Zeit berechnen - Progfrog19 26. Juli 2019 um 17:11:31
Re: Restliche Zeit berechnen - Nico 26. Juli 2019 um 17:31:58
Re: Restliche Zeit berechnen - Progfrog19 30. Juli 2019 um 15:38: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 2015
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