Jump to content

DosGetDateTime (OS/2 1.x): Difference between revisions

From EDM2
Ak120 (talk | contribs)
No edit summary
Line 1: Line 1:
[[image:legacy.png]]
This is the legacy function. It is recommended to use:  [[OS2 API:CPI:DosGetDateTime|DosGetDateTime]]
==Description==
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==
<PRE>
  DosGetDateTime (DateTime)
  DosGetDateTime


    (DateTime)
</PRE>
==Parameters==
==Parameters==
; DateTime (PDATETIME) - output : Address of the date and time structure:
;DateTime (PDATETIME) - output : Address of the date and time structure:
 
::hours (UCHAR) - Current hour
* hours (UCHAR)
::minutes (UCHAR) - Current minute
        Current hour.
::seconds (UCHAR) - Current second
* minutes (UCHAR)
::hundredths (UCHAR) - Current hundredth of a second
        Current minute.
::day (UCHAR) - Current day
* seconds (UCHAR)
::month (UCHAR) - Current month
        Current second.
::year (USHORT) - Current year
* hundredths (UCHAR)
::timezone (SHORT) - Minutes west of UTC (Universal Time Coordinate)
        Current hundredth of a second.
::weekday (UCHAR) - Current day of the week. Sunday is 0.
* 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   NO_ERROR


==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 rc = DosGetDateTime(DateTime);
USHORT   rc = DosGetDateTime(DateTime);
 
PDATETIME DateTime;      /* Address of date/time structure (returned) */
PDATETIME       DateTime;      /* Address of date/time structure
USHORT   rc;            /* return code */
                                    (returned) */
 
USHORT           rc;            /* return code */
</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 */
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:The OS/2 API Project]]
[[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

Related Functions