DosGetDateTime (OS/2 1.x): Difference between revisions
m Martini moved page OS2 API:CPI:LEGACY:DosGetDateTime to DosGetDateTime (Legacy) |
No edit summary |
||
Line 1: | Line 1: | ||
This call gets the current date and time maintained by the operating system. | This call gets the current date and time maintained by the operating system. | ||
==Syntax== | ==Syntax== | ||
DosGetDateTime (DateTime) | |||
DosGetDateTime | |||
==Parameters== | ==Parameters== | ||
; | ;DateTime (PDATETIME) - output : Address of the date and time structure: | ||
::hours (UCHAR) - Current hour | |||
::minutes (UCHAR) - Current minute | |||
::seconds (UCHAR) - Current second | |||
::hundredths (UCHAR) - Current hundredth of a second | |||
::day (UCHAR) - Current day | |||
::month (UCHAR) - Current month | |||
::year (USHORT) - Current year | |||
::timezone (SHORT) - Minutes west of UTC (Universal Time Coordinate) | |||
::weekday (UCHAR) - Current day of the week. Sunday is 0. | |||
==Return Code== | ==Return Code== | ||
rc (USHORT) - return | rc (USHORT) - return | ||
Return code description is: | Return code description is: | ||
* 0 NO_ERROR | |||
* 0 | |||
==Remarks== | ==Remarks== | ||
Line 46: | Line 27: | ||
==Example Code== | ==Example Code== | ||
===C Binding=== | ===C Binding=== | ||
<PRE> | <PRE> | ||
typedef struct _DATETIME { /* date */ | typedef struct _DATETIME { /* date */ | ||
UCHAR hours; /* current hour */ | UCHAR hours; /* current hour */ | ||
UCHAR minutes; /* current minute */ | UCHAR minutes; /* current minute */ | ||
Line 59: | Line 38: | ||
USHORT year; /* current year */ | USHORT year; /* current year */ | ||
SHORT timezone; /* minutes of time west of UTC */ | SHORT timezone; /* minutes of time west of UTC */ | ||
UCHAR weekday; /* current day of week */ | UCHAR weekday; /* current day of week */ | ||
} DATETIME; | } DATETIME; | ||
#define INCL_DOSDATETIME | #define INCL_DOSDATETIME | ||
USHORT | USHORT rc = DosGetDateTime(DateTime); | ||
PDATETIME DateTime; /* Address of date/time structure (returned) */ | |||
PDATETIME | USHORT rc; /* return code */ | ||
USHORT | |||
</PRE> | </PRE> | ||
This example gets the current time and date. | This example gets the current time and date. | ||
Line 79: | Line 54: | ||
USHORT rc; | USHORT rc; | ||
rc = DosGetDateTime(&DateBuffer); /* Date/Time structure */ | |||
</PRE> | </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. | 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. | ||
Line 86: | Line 60: | ||
<PRE> | <PRE> | ||
#define INCL_DOSDATETIME | #define INCL_DOSDATETIME | ||
#include <os2.h> | #include <os2.h> | ||
Line 105: | Line 78: | ||
printf("rc is %d\n", rc); | printf("rc is %d\n", rc); | ||
} | } | ||
</PRE> | </PRE> | ||
Line 111: | Line 83: | ||
<PRE> | <PRE> | ||
DATETIME struc | DATETIME struc | ||
date_hours db ? ;current hour | date_hours db ? ;current hour | ||
date_minutes db ? ;current minute | date_minutes db ? ;current minute | ||
Line 121: | Line 92: | ||
date_timezone dw ? ;minutes of time west of UTC | date_timezone dw ? ;minutes of time west of UTC | ||
date_weekday db ? ;current day of week | date_weekday db ? ;current day of week | ||
DATETIME ends | DATETIME ends | ||
Line 132: | Line 102: | ||
Returns WORD | Returns WORD | ||
</PRE> | </PRE> | ||
==Related Functions== | ==Related Functions== | ||
* | *[[DosSetDateTime (Legacy)|DosSetDateTime]] | ||
[[Category: | [[Category:Dos]] |
Revision as of 03:54, 6 January 2017
This call gets the current date and time maintained by the operating system.
Syntax
DosGetDateTime (DateTime)
Parameters
- DateTime (PDATETIME) - output
- Address of the date and time structure:
- hours (UCHAR) - Current hour
- minutes (UCHAR) - Current minute
- seconds (UCHAR) - Current second
- hundredths (UCHAR) - Current hundredth of a second
- day (UCHAR) - Current day
- month (UCHAR) - Current month
- year (USHORT) - Current year
- timezone (SHORT) - Minutes west of UTC (Universal Time Coordinate)
- weekday (UCHAR) - Current day of the week. Sunday is 0.
Return Code
rc (USHORT) - return
Return code description is:
- 0 NO_ERROR
Remarks
The dayofweek value is based on Sunday equal to zero. The value of timezone is the difference in minutes between the current time zone and UTC. This number is positive if it is earlier than UTC and negative if it is later than UTC. For Eastern Standard Time, this value is 300 (5 hours earlier than UTC).
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.
Example Code
C Binding
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 = DosGetDateTime(DateTime); PDATETIME DateTime; /* Address of date/time structure (returned) */ USHORT rc; /* return code */
This example gets the current time and date.
#define INCL_DOSDATETIME DATETIME DateBuffer; USHORT rc; rc = DosGetDateTime(&DateBuffer); /* Date/Time structure */
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.
#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); }
MASM Binding
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 DosGetDateTime:FAR INCL_DOSDATETIME EQU 1 PUSH@ OTHER DateTime ;Date/time structure (returned) CALL DosGetDateTime Returns WORD