| |
Visual-Basic EinsteigerZeitwert in serieller Zahl, auch halben Tage | | | Autor: Michael_HU | Datum: 07.04.13 09:25 |
| Begrüße Euch!
ich gebe ein komplettes Startdatum mit Zeitangabe ein.
z.B.: userDatum=07.04.2013 und userZeit=12:00:00.
Nun möchte ich eine Berechnung und ein Ergebnis in VB6 auf Muster der Excel-Funktion aufbauen:
Es ist der ZEITWERT seit Mitternacht bis userZeit des userDatums als serielle Zahl:
MZZ =ZEITWERT(userStunde; userMinute; userSekunde)
Wobei die drei Werte von mir als Uhrzeit eingegeben werden.
Z.B.: Meine Zeiteingabe ist entweder "12:00:00" oder wie oben schon auf Std/Min/Sek zerlegt.
Das Ergebnis möchte ich in Dezimalzahl erhalten.
Das Ergebnis ist dann zu Fuß gerechnet ein halber Tag: 0,5 Tag.
Und wie geht es in VB6?
Ich danke Euch im Voraus für die Hilfe.
Gruß
Michael
| |
Re: Zeitwert in serieller Zahl, auch halben Tage | | | Autor: Blackbox | Datum: 07.04.13 09:58 |
| Hi,
siehe Dir die Funktionen: DateSerial(Tag, Monat, Jahr) und/oder TimeSerial(Stunde, Minute, Sekund), das sind Standardfunktionen von VB6 an - vielleicht passt das ja schon.
Das andere Problem mit dem halben Tag ist simpler Dreisatz. | |
Re: Zeitwert in serieller Zahl, auch halben Tage | | | Autor: Michael_HU | Datum: 07.04.13 09:59 |
| Ich habe hier eine ähnliche Berechnung gefunden:
'** Zeit-Differenz berechnen
'** http://www.vbarchiv.net/tipps/tipp_571-zeit-differenz-berechnen.html
Dim lngMin As Long
Dim lngStd As Long
Dim sTime1 As String
Dim sTime2 As String
sTime1 = "12:00"
sTime2 = "00:00"
' 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)) / 60 / 24
MsgBox "lngMin: " & lngMin
Gibt mir Null aus, obwohl beim Haltepunkt setzen am lngMin ohne Dividierungen stimmt die Zeit: lngmin=720 Min.
Wenn ich diese dann dividiere durch 60 und durch 24 dann müsste ich 0,5 Tag bekommen lt. taschenrechner.
| |
Re: Zeitwert in serieller Zahl, auch halben Tage | | | Autor: Michael_HU | Datum: 07.04.13 10:50 |
| Habe so gelöst:
Dim sTime1 As String
Dim sTime2 As String
'Dim sDatum As String
Dim Tagwert As Double
sTime1 = "12:00:00" 'vergangene Zeit an diesem Tag
sTime2 = "00:00:00" 'Neuer Tag beginn
sDate1 = sDatum
sDate2 = sDate1
' Zeitdifferenz in Tagen in Dezimalzahl ausgedrückt
Tagwert = DateDiff("n", CDate(sDatum & " " & sTime2), _
CDbl(CDate(sDatum & " " & sTime1))) / 60 / 24
MsgBox "Tagwert: " & Tagwert
Mein Ergebnis ist 0,5 Tag.
| |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|
|
|
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
|
|