title image


Smiley Zeit auf Stunden abrunden
Ich möchte gerne Daten in Access 2000 die Sekundengenau erfasst sind, bspw. 27.03.2006 00:59:38 auf die jeweils volle Stunde abrunden.



Natürlich habe ich es mit Reinhards Lösung http://www.spotlight.de/nzforen/amsa/m/amsa-1111748998-21609.html versucht.



Public Function ZeitAbrunden(D, Optional Minuten = 15)

Dim Tmp As Double Tmp = (((CDbl(D) * 1440#) \ Minuten) * Minuten) / 1440#

ZeitAbrunden = CDate(Tmp

End Function



Habe Oben bei Optional Minuten = 15 statt 15 60 Minuten genommen und siehe es funktioniert aber, wie immer gibt es da Ausnahmen. Das oben illustrierte Beispiel 00:59:38 wird nämlich auf 1:00:00 "aufgerundet" statt abgerundet.



Gut dann schaue ich mir mal die Funktion an dachte ich mir. Tat dies und wurde daraus nicht schlau. Ich bin jetzt nicht so ein Käppsele, aber was macht die eigentlich. Rein arithmetisch verändert sie den Wert CDbl(D) gar nicht, oder? (((CDbl(D) * 1440#) \ Minuten) * Minuten) / 1440# =CDbl(D) oder was bewirkt das Gatter (#), das den Datentyp Double kennzeichnet?

Ich bin verwirrt. Warum funktioniert die Funktion eigentlich so gut und in dem skizzierten Beispiel nicht?



Dachte mir dann, hm könnte an den Minuten liegen und habe 1440 durch 86400 ersetzt. Habe also den Tag in sekunden umgerechnet und habe nicht Optional Minuten=60 sondern Sekunden = 3600 genommen. Nun da werden die Daten zu groß für Double -> Überlauf. Welchen Datentyp muss ich denn da nehmen?



Fragen also über Fragen. ZUrück zu meinem Problem. Hat jemand einen Tipp wie ich Datumswerte wie oben auf Stunden abrunden kann?



Danke vielmals

Pavemann







geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: