Attribute VB_Name = "cast_numToDate" '------------------------------------------------------------------------------- 'File : cast_numToDate.bas ' Copyright mpl by ERB software ' All rights reserved ' http://wiki.yaslaw.info/dokuwiki/doku.php/vba/cast/numtodate 'Environment : VBA 2007 + 'Version : 1.0.2 'Name : numToDate 'Author : Stefan Erb (ERS) 'History : 04.08.2014 - ERS - Creation ' 05.09.2014 - ERS - Vorzeichen korrigiert ' 19.10.2015 - ERS - cDec() hinzugefügt '------------------------------------------------------------------------------- Option Explicit Private Const C_UNIX_START As Date = #1/1/1970# 'Januar 1 1970 00:00:00 Public Enum ntdInputType ntdDefault 'DateDadd() auf Das Jahr 1900 ntdUnixTimestamp 'DateAdd auf das Jahr 1970 ntdDouble 'Das Datum ist im Format cdbl(date) End Enum '/** ' * @param variant (Decimal) Zahl die gewandelt werden soll ' * @param String Interval. Um was es sich bei der Zahl handelt (wird bei ntdDouble ignoriert). Analog zu DateAdd() ' * @param ntdInputType Spezifikation was die Augangslage ist. ' * @return Date ' */s Public Function numToDate(ByVal iNumber As Variant, Optional ByVal iInterval As String = "s", Optional ByVal iInputType As ntdInputType = ntdDefault) As Date Dim num As Variant: num = CDec(iNumber) Select Case iInputType Case ntdUnixTimestamp: numToDate = DateAdd(iInterval, num, C_UNIX_START) Case ntdDouble: numToDate = CDate(num) Case Else: numToDate = DateAdd(iInterval, num, 0) End Select End Function