en:docs:fapi:dossetdatetime
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Next revision
en:docs:fapi:dossetdatetime [2018/08/31 07:25] – created prokushev
Line 1: Line 1:
 +
 +This call is used to set the date and time that are maintained by the operating system.
 +
 +==Syntax==
 + DosSetDateTime (DateTime)
 +
 +==Parameters==
 +;DateTime (PDATETIME) - input : Address of the date and time structure:
 +::hours (UCHAR) - Current hour (0-23)
 +::minutes (UCHAR) - Current minute (0-59)
 +::seconds (UCHAR) - Current second (0-59)
 +::hundredths (UCHAR) - Current hundredth of a second (0-99)
 +::day (UCHAR) - Current day (1-31)
 +::month (UCHAR) - Current month (1-12)
 +::year (USHORT) - Current year (1980-2079)
 +::timezone (SHORT) - Minutes west of UTC (Universal Time Coordinate -720 to 720). 
 +::weekday (UCHAR) - Current day of the week. This value is ignored and is calculated from the other parameter information.
 +
 +==Return Code==
 + rc (USHORT) - return
 +Return code descriptions are:
 +* 0 NO_ERROR
 +*327 ERROR_TS_DATETIME
 +
 +==Remarks==
 +The value of timezone is the difference in minutes between the current time zone and UTC. This is a positive number if earlier than UTC, and negative number if it is later. For Eastern Standard Time this value is 300 (five hours earlier than UTC).
 +
 +To get the date and time, issue DosGetDateTime. If the application is executing in the OS/2 environment, it is more efficient to obtain these variables by calling DosGetInfoSeg instead of this function. However, applications written to the family API cannot depend on the availability of DosGetInfoSeg.
 +
 +Not adhering to the limits on any of the parameters results in the return code being set to rc = 327 (ERROR_TS_DATETIME). Also, OS/2 verifies that the day is possible for the month and the year (even for leap year). If the day is not reasonable, OS/2 will also set rc = 327. 
 +
 +==Example Code==
 +===C Binding===
 +<PRE>
 +typedef struct _DATETIME {  /* date */
 +  UCHAR   hours;            /* current hour */
 +  UCHAR   minutes;          /* current minute */
 +  UCHAR   seconds;          /* current second */
 +  UCHAR   hundredths;       /* current hundredths of a second */
 +  UCHAR   day;              /* current day */
 +  UCHAR   month;            /* current month */
 +  USHORT  year;             /* current year */
 +  SHORT   timezone;         /* minutes of time west of UTC */
 +  UCHAR   weekday;          /* current day of week */
 +} DATETIME;
 +
 +#define INCL_DOSDATETIME
 +
 +USHORT    rc = DosSetDateTime(DateTime);
 +PDATETIME DateTime;      /* Date/time structure */
 +USHORT    rc;            /* return code */
 +</PRE>
 +The following example obtains and prints date and time information. It then changes the system date to 5/10/1987 and prints the updated information. 
 +<PRE>
 +#define INCL_DOSDATETIME
 +#include <os2.h>
 +
 +main()
 +{
 +  DATETIME   DateTime;       /* Structure to hold date/time info. */
 +  USHORT     rc;
 +
 +  rc = DosGetDateTime(&DateTime);     /* Address of d/t structure */
 +  printf("Today is %d-%d-%d; the time is %d:%d\n", DateTime.month,
 +         DateTime.day, DateTime.year, DateTime.hours, DateTime.minutes);
 +  DateTime.day = 10;
 +  DateTime.month = 5;
 +  DateTime.year = 1987;
 +  printf("The new date is %d-%d-%d; the time is %d:%d\n", DateTime.month,
 +         DateTime.day, DateTime.year, DateTime.hours, DateTime.minutes);
 +  rc = DosSetDateTime(&DateTime);    /* Address of d/t structure */
 +  printf("rc is %d\n", rc);
 + }
 +</PRE>
 +
 +===MASM Binding===
 +<pre>
 +DATETIME struc
 +  date_hours      db  ? ;current hour
 +  date_minutes    db  ? ;current minute
 +  date_seconds    db  ? ;current second
 +  date_hundredths db  ? ;current hundredths of a second
 +  date_day        db  ? ;current day
 +  date_month      db  ? ;current month
 +  date_year       dw  ? ;current year
 +  date_timezone   dw  ? ;minutes of time west of UTC
 +  date_weekday    db  ? ;current day of week
 +DATETIME ends
 +
 +EXTRN  DosSetDateTime:FAR
 +INCL_DOSDATETIME    EQU 1
 +
 +PUSH@  OTHER   DateTime      ;Date/time structure
 +CALL   DosSetDateTime
 +
 +Returns WORD
 +</pre>
 +
 +
 +
 +====== Note ======
 +
 +Text based on [[http://www.edm2.com/index.php/DosSetDateTime_(Legacy)]]
 +
 +{{page>en:templates:fapi}}