Jump to content

DosSetDateTime

From EDM2
Revision as of 22:16, 23 December 2016 by Ak120 (talk | contribs)

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

rc = 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

Include Info

#define INCL_DOSDATETIME
#include <os2.h>

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

  1. OS2Linux project (Common Public License) created a clone for this function [1].