vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 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
Zeitwert 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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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