VarDateFromUdate function (oleauto.h)

Converts a time and date converted from MS-DOS format to variant format.


HRESULT VarDateFromUdate(
  [in]  UDATE *pudateIn,
  [in]  ULONG dwFlags,
  [out] DATE  *pdateOut


[in] pudateIn

The unpacked date.

[in] dwFlags

VAR_VALIDDATE if the date is valid.

[out] pdateOut

The packed date.

Return value

This function can return one of these values.

Return code Description
One of the arguments is not valid.
Insufficient memory to complete the operation.


The UDATE structure is used with VarDateFromUdate, VarDateFromUdateEx, and VarUdateFromDate. It represents an unpacked date.

typedef struct {
    USHORT  wDayOfYear;

The VarDateFromUdate function will accept invalid dates and try to fix them when resolving to a VARIANT time. For example, an invalid date such as 2/29/2001 will resolve to 3/1/2001. Only days are fixed, so invalid month values result in an error being returned. Days are checked to be between 1 and 31. Negative days and days greater than 31 results in an error. A day less than 31 but greater than the maximum day in that month has the day promoted to the appropriate day of the next month. A day equal to zero resolves as the last day of the previous month. For example, an invalid dates such as 2/0/2001 will resolve to 1/31/2001.

Calling VarDateFromUdate has the same effect as calling VarDateFromUdateEx with the LCID 0x0409.


Target Platform Windows
Header oleauto.h
Library OleAut32.lib
DLL OleAut32.dll