DosSetDateTime
Appearance
DosSetDateTime sets the current date and time for the system. Although you can set day, month, year and weekday to whatever you want, DosSetDateTime will check if it is a correct combination and will return an error if it is incorrect.
Syntax
DosSetDateTime( pdt )
Parameters
- PDATETIME pdt (input)
- The pointer to a DATETIME structure containing the date and time to be set as the system's date and time.
Returns
- APIRET rc
- 0 NO_ERROR
- 327 ERROR_TS_DATETIME
Relevant Structures
typedef struct _DATETIME { UCHAR hours; /* 0..23 */ UCHAR minutes; /* 0..59 */ UCHAR seconds; /* 0..59 */ UCHAR hundredths; /* 0..99, 1/100 s */ UCHAR day; /* 0..31 */ UCHAR month; /* 0..12 */ USHORT year; SHORT timezone; /* Difference in minutes between current time zone and */ /* GMT. > 0 west of Greenwich */ UCHAR weekday; /* 0..6 0=Sunday */ } DATETIME, *PDATETIME;
Gotchas
The sign of the time zone is opposed to that ordinarily used. Ie GMT+1 (Western Europe) <=> -60
Sample Code
#define INCL_DOSDATETIME
#include <os2.h>
DATETIME dt;
dt.hours=12;
dt.minutes=34;
dt.seconds=56;
dt.hundredths=78;
dt.day=8;
dt.month=7;
dt.year=1996;
dt.timezone=-60; /* West Europe */
dt.weekday=1; /* Monday */
if(DosSetDateTime(&dt)) /* Set time to 12:34:56.78, Monday July 8, 1996 */
/* somewhere in western Europe */
{
/* Failure */
}
else
{
/* Success */
}
See Also
Alternative Version
- OS2Linux project (Common Public License) created a clone for this function [1].