Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: Schlaefli am August 30, 2017, 10:26:09

Titel: Rechnen mit Zeiten
Beitrag von: Schlaefli am August 30, 2017, 10:26:09
Wie rechnet man mit Zeiten von über 24 Stunden und dann in Stunden und Minuten darstellen ?
Besten Dank im Voraus
Titel: Re: Rechnen mit Zeiten
Beitrag von: MzKlMu am August 30, 2017, 10:31:25
Hallo,
auch Zeiten können ganz normal addiert werden.
Zeiten sind Kommazahlen <1.
Eine Addition ergibt dann eine Kommazahl als dezimale Tage. Diese Zahl mit 24 multipliziert ergibt dezimale Stunden.

Erkläre mal genauer was Du rechnen willst.
Wo kommen die Zeiten her die Du addieren willst ?
Was soll mit der Zeitsumme dann passieren ?

PS:
Solche Kurzfragen sind wenig geeignet Dir so richtig zu helfen.
Du solltest Dir angewöhnen Deine Fragen ausführlicher zu stellen und auch etwas zum Hintergrund zu sagen. Davon hängen ja dann auch mögliche Lösungshinweise ab.
Titel: Re: Rechnen mit Zeiten
Beitrag von: DF6GL am August 30, 2017, 10:39:04
Hallo,

weitere Infos hier:

http://www.donkarl.com/?FAQ2.10
Titel: Re: Rechnen mit Zeiten
Beitrag von: Lachtaube am August 30, 2017, 11:21:18
Access bzw. VBA kennt kein eigenes Format für Zeitintervalle.

Ein einfaches Beispiel aus dem VBA-Direktbereich
z1 = #17:55#
z2 = #9:10#
z3 = z1 + z2

?z3 'wie man sieht, ist Zeit ein Datum
31.12.1899 03:05:00

'gültig nur für positive Intervalle
?Int(z3) * 24 + Hour(z3) & Format$(Minute(z3), "\:00") & Format$(Second(z3), "\:00")
27:05:00

'allgemein gültig
z4 = z2 - z1

sz4 = Sgn(z4)  'Vorzeichen merken
az4 = Abs(z4)  'Absolutwert im folgenden verwenden
?sz4 * (Int(az4) * 24 + Hour(az4)) & Format$(Minute(az4), "\:00") & Format$(Second(az4), "\:00")
-8:45:00

z5 = z4 - 3 * #19:00:33#
sz5 = Sgn(z5)
az5 = Abs(z5)
?sz5 * (Int(az5) * 24 + Hour(az5)) & Format$(Minute(az5), "\:00") & Format$(Second(az5), "\:00")
-65:46:39

PS: Es kann auch sinnvoll sein, seine Zeitintevalle auf andere Einheiten (Sekunden, Minuten, ...) als Tage zu skalieren. Bei einer formatierten Ausgabe muss dann halt selbst die Sexagesimal-Umrechnungen vornehmen, die im Beispiel oben von den Funktionen Hour, Minute und Second bewerkstelligt werden.