| |
VB Skript (VBS)Uhrzeit in stunden umrechnen | | | Autor: user2100 | Datum: 30.10.11 21:03 |
| hi, ich habe ein kleines prog. zum eintragen meiner arbeitszeiten entworfen.
dort gebe ich in textbox1 die anfangszeit und in textbox2 die endzeit ein.
wie bekomme ich es hin das mir aus den beiden zeiten die stunden errechnet werden?
Beispiel:
textbox1 - 6.00
textbox2 - 14.00
arbeitszeit = 8 h
so hatte ich es mir vorgestellt.
mfg chris | |
Re: Uhrzeit in stunden umrechnen | | | Autor: Franki | Datum: 31.10.11 01:36 |
| Hallo Chris,
indem du die Differenz der beiden Uhrzeiten bildest. Aber um mit Uhrzeiten rechnen zu können müssen diese auch das richtige Format haben (DateTime)
Und bei der Eingabe sollte auch immer das Datum enthalten sein, zumindest indirekt. Denn von 6 bis 14 Uhr sind 8 Stunden, (14-6=8) aber von 22 - 6 Uhr des folgenden Tages sind ebenfalls 8 Arbeitsstunden aber (22-6 oder umgekehrt ergibt nicht 8)
Mit DateDiff kannst du Zeitdifferenzen berechechnen. Beispiel
Private Sub Command1_Click()
Startzeit = CDate(Text1.Text) ' 31.10.2011 22:00:00
Endzeit = CDate(Text2.Text) ' 01.11.2011 06:00:00
Arbeitsstunden = DateDiff("h", Startzeit, Endzeit)
MsgBox Arbeitsstunden
End Sub Du musst bei Zeitberechnungen zwingend "richtige" Zeiten verwenden, da halt eine Stunde dummerweise nur 60 anstatt 100 Minuten hat. Bei obigem Beispiel wären das bei Endzeit 06:15 Uhr nämlich 8,25 Stunden z.B. (und nicht etwa 8,15 Stunden)
Du solltest für die Eingabe und Speicherung der Uhrzeiten dem User eine Eingabemaske oder ein Steuerelement zur Verfügung stellen so dass da auch nur gültige Eingaben gemacht werden können bevor gespeichert wird. Das vereinfacht die Sache ungemein.
Gruß,
Frank | |
Re: Uhrzeit in stunden umrechnen | | | Autor: user2100 | Datum: 31.10.11 15:03 |
| ich danke dir für die hilfe das hat mir echt gut geholfen vielen dank
wenn ich die zeit von 6.00 bis 14.15 nehme werden mir nur die 8 stunden angezeigt und das ,25 nicht. wenn mann die ausgabe so genau wie möglich haben möchte wie müsste man das machen?
mfg chris
Beitrag wurde zuletzt am 31.10.11 um 15:06:33 editiert. | |
Re: Uhrzeit in stunden umrechnen | | | Autor: Franki | Datum: 01.11.11 05:45 |
| Hallo Chris,
schau dir doch mal die Hilfe zu den Datumsfunktionen an, dann wirst du feststellen, dass das "h" in meinem Beispiel für Stunden steht.
Wenn du auch Minuten, oder gar Sekunden, oder Jahre, Kalenderwochen usw. bauchst dann musst du halt die Funktion entsprechend aufrufen.
In dem Beispiel von dir müsste das Intervall auf Minuten sein, da eine Viertelstunde. Es ist so, dass kleinere Zeiteinheiten immer unberüchsichtigt bleiben wenn eine größere als Intervall angegeben worden ist. (Also gib Minuten an)
Die Umrechnung mußt du selbt machen.
Also eine Minute hat 60 Sekunden, eine Stunde 60 Minuten usw. (Das ist der einfache Weg, es würd komplitzierter werden, wenn Zeitzonen, Sommer / Winterzeit usw. berücksichtigt werden müssen.
Aber in der Hilfe steht alles über die Datums- Zeitfunktionen bzw. deren Parameter, das sollte als Anhaltspunkt reichen. Ansonsten gibt es auch Steuerelemente die das auctomatisch erledigen, daber da steckt auch nichts Anderes dahinter als simple Mathematik wie oben.
Gruß
Frank | |
Re: Uhrzeit in stunden umrechnen | | | Autor: Manfred X | Datum: 01.11.11 07:43 |
| Hallo!
CDate arbeitet mit einer Zeitskala auf der
Basis von Doublewerten
(Differenz 1 = 1 Tag, Differenz 0.5 = 12 Stunden)
startzeit = CDate("31.10.2011 22:00:00")
endzeit = CDate("01.11.2011 06:15:30")
Dim differenz_tage#, differenz_std#, differenz_min#
differenz_tage = endzeit - startzeit
differenz_std = (endzeit - startzeit) * 24
differenz_min = (endzeit - startzeit) * 1440
MfG
Manfred | |
Re: Uhrzeit in stunden umrechnen | | | Autor: user2100 | Datum: 02.11.11 16:13 |
| vielen dank ich weiss leider nicht ganz wie du das meinst kannst du mir evtl. ein beispiel code zeigen?
@ Franki
mfg chris
Beitrag wurde zuletzt am 02.11.11 um 16:21:38 editiert. | |
Re: Uhrzeit in stunden umrechnen | | | Autor: Franki | Datum: 03.11.11 05:36 |
| Hallo Chris,
ManfredX hat dir ja schon was geschickt. Ergänzend dazu ist víelleicht das hier hilfreich über die zu Fuss Methode. (Ich habe die Daten von ManfredX übernommen)
Private Sub Irgendwas()
Dim Startzeit As Date
Dim Endzeit As Date
Startzeit = CDate("31.10.2011 22:00:00")
Endzeit = CDate("01.11.2011 06:15:30")
Minuten = DateDiff("n", Startzeit, Endzeit)
' Das ist mehr als eine Stunde, obwohl Tageswechsel beim Datum (795)
' Hier sind die Sekunden auch nicht berücksichtigt, da das Intervall auf
' Minunten lautet
Stunden = Minuten / 60 ' Bzw. noch runden auf zwei Nachkommastellen bei
' Bedarf
MsgBox Minuten & " Minuten" & vbCrLf & Stunden & " Stunden"
' Wenn das mehr als 24 Stunden sind, dann halt noch weiter auf Tage
' umrechnen usw.
' Ein Tag hat 24 Stunden, siehe oben wie eine Stunde 60 Minuten hat
End Sub Wichtig ist, dasss immer nur die Einheit zurück gegeben wird die auch abgefragt wird. Also die kleinste Einheit die erfasst wird bzw. interessant ist. Genau die brauchst du auch, aber umrechnen musst du immer selbst.
Also von Minuten zu Stunden mit 60, von Stunden zu Tagen mit 24 usw. Je nachdem was grade gewünscht ist.
Beim Beispiel von ManfredX bzw. dem Code oben siehst du, dass z.B. die 30 Sekunden da völlig unberücksichtigt bleiben weil die Abfrage halt auf Minuten lautet. (Bei Stundenlohn ja uninterressant) Ist das Prinzip jetz klar?
Gruß,
Frank | |
Re: Uhrzeit in stunden umrechnen | | | Autor: Franki | Datum: 03.11.11 05:54 |
| Hallo ManfredX,
Richtig, der Multiplikator ist entscheidend um von einer zur anderen Einheit umrechnen zu können. Aber den muss man halt wissen bzw. verstehen für die eigenen Programmierung.
ich habe das in meinem Beispiel halt mal mit 60 gemachacht, rein zum Verständnis, aber das Prinzip ist ja identisch.
Bin mal gespannt, ob eine Antwort kommt vom OP und wie diese aus fällt.
Gruß,
Frank | |
Re: Uhrzeit in stunden umrechnen | | | Autor: user2100 | Datum: 03.11.11 15:54 |
| vielen dank für die zahlreiche hilfe die ich bekommen habe.
es funktioniert alles super.
mit freundlichen grüßen
chri | |
| 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 |
|
|
sevZIP40 Pro DLL
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|