vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

Visual-Basic Einsteiger
Re: "Einfache" Rechnung mit Zeit 
Autor: Polystrol
Datum: 15.10.12 10:33

hab mich umentschieden ich beginne die Sache anders, das heiss dieses Tehma kann "geschlossen" werden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

"Einfache" Rechnung mit Zeit 
Autor: Polystrol
Datum: 13.10.12 10:16

Hallo

Ich habe begonnen von Excel auf VB umzusteigen und versuchenun mein Excelprogramm in vb aufzubauen.

Dabei Habe ich drei Zeiten, die ich mit 3 DateTimePickern auswähle.
Nun will ich in einem Label meine Arbeitszeit ausgerechnet bekommen.
das heisst ca.

DateTimePicker2 - DateTimePicker1 = Arbeitszeit im Label5 Dargestellt.

was ich bis jetzt mit dem Internet zusammengestellt habe funktioniert nicht, bzw, es wird jedenfalls nichts im Label5 Angezeigt:

Private Function TimeDiff(ByVal Time1 As String, ByVal Time2 As String) As _
  String
        Dim lngMin As Long
        Dim lngStd As Long
        Dim sTime1 As String
        Dim sTime2 As String
 
        sTime1 = DateTimePicker1.Value
        sTime2 = DateTimePicker2.Value
 
        ' Zeitdifferen lässt sich nur berechnen, wenn man
        ' auch ein gültiges Datum mit angibt
        Dim sDate1 As String
        Dim sDate2 As String
 
        sDate1 = CDate(Format$(Now, "m-d-yy"))
 
        ' Wenn sTime2 < sTime1
        sDate2 = DateAdd("d", IIf(sTime2 < sTime1, 1, 0), sDate1)
 
        ' Zeit-Differenz in Minuten
        lngMin = DateDiff("n", CDate(sDate1 & " " & sTime1), _
          CDate(sDate2 & " " & sTime2))
 
        ' Und jetzt ins Format hh:nn umwandeln
        lngStd = Int(lngMin / 60)
        lngMin = lngMin - (lngStd * 60)
 
        Dim Uhrzeit As String
        Uhrzeit = "Zeit-Differenz: " & _
          Format$(lngStd, "00") & ":" & Format$(lngMin, "00")
        Label5.Text = Uhrzeit
 
    End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: "Einfache" Rechnung mit Zeit 
Autor: mst547
Datum: 13.10.12 14:23

Hallo Polystrol!

Mich wundert, dass dieser Code überhaupt läuft - habe deinen Code ausprobiert, ich erhalte da eine Reihe von Laufzeitfehlern.

1.) Variablen, die ein Datum oder eine Zeit beinhalten, nicht als String deklarieren, sondern als Date.

2.) Die Typ-Umwandlung, die du in der Zeile machst, in der du die Zeit-Differenz in Minuten berechnest, funktioniert (zumindest bei mir) so nicht. Da die Daten, die vom DTPicker kommen, aber das aktuelle Datum beinhalten, können wir den Teil mit dem Datum überhaupt streichen. Nur für den Fall, dass die 2. Zeit vor der 1. Zeit liegt, müssen wir einen Tag addieren.

3.) Label5.Text gibt es nicht, der Text eines Labels steht in der Eigenschaft .Caption

4.) Du schreibst eine Funktion, verwendest aber die übergebenen Parameter gar nicht; abgesehen davon, dass diese natürlich auch nicht als String, sondern als Date übergeben werden sollten, wenn du Zeitwerte übergeben willst.

Eine funktionierende Version des Programms könnte also etwa so aussehen:
Private Function TimeDiff(ByVal datTime1 As Date, ByVal datTime2 As Date) As _
  String
Dim lngMin As Long
Dim lngStd As Long
 
If datTime2 < datTime1 Then datTime2 = DateAdd("d", 1, datTime2)
 
lngMin = DateDiff("n", datTime1, datTime2)
lngStd = Int(lngMin / 60)
lngMin = lngMin Mod 60
 
TimeDiff = "Zeit-Differenz: " & Format$(lngStd, "00") & ":" & Format$(lngMin, _
  "00")
End Function
 
 
Private Sub Command1_Click()
Label5.Caption = TimeDiff(DateTimePicker1.Value, DateTimePicker2.Value)
End Sub
mfg mst547
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: "Einfache" Rechnung mit Zeit 
Autor: Polystrol
Datum: 13.10.12 14:45

Uff, ich merke echt, das ich in visual ein totaler Anfänger bin.

jedenfalls schon mal danke vielmals für die Mühe, und ich hab das mal ausprobiert.
Dann kommt bei mir diese Fehlermeldung:

"Caption" ist kein Member von "System.Windows.Forms.Label".
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: "Einfache" Rechnung mit Zeit 
Autor: mst547
Datum: 13.10.12 16:20

Hallo Polystrol!

Das hört sich so an, als ob du VB.NET verwendest und nicht VB Classic. Für VB.NET gibt es hier ein eigenes Forum.

Versuche mal, die Zeile wieder zu ändern auf Label5.Text, vielleicht heißt die Eigenschaft in VB.NET so.

mfg mst547
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: "Einfache" Rechnung mit Zeit 
Autor: Polystrol
Datum: 14.10.12 13:05

öhhmm und wo sieht man was man verwendet?
hab es noch keine erfahrung.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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