Copyright Digital Equipment Corp. All rights reserved.

Example

   The following example shows the following time zone and time
   format conversions:

   1. Retrieve a binary timestamp representing UTC with the
      sys$getutc system service.

   2. Convert the binary timestamp to a OpenVMS format binary time
      representing GMT

   3. Convert the OpenVMS format binary time representing GMT back
      to a UTC-based binary timestamp with a TDF of 0 (zero)

   4. Convert the UTC-based binary time to a binary OpenVMS format
      time representing the local time; use the TDF from the system

   /*****
     start example vmsgmtime, mkvmsgmtime, vmslocaltime
    *****/
   #include <utc.h>

   main()
   {
   int status;
   struct utc utcTime;
   int vmsTime[2];

    if (!((status=SYS$GETUTC(&utcTime))&1))
        exit(status);              /* read curr time as a utc */

   /*
    * convert the utcvalue into a vms time, with a timezone of 0
    * (GMT).  Printing the resultant vmstime yields the time at
    * the prime meridian in Greenwich, not (necessarily) the
    * local time.
    */
    if (utc_vmsgmtime(vmsTime,&utcTime))
       exit(1);

   /*
    * Convert the vmstime (which is in GMT) to a utc
    */
   if (utc_mkvmsgmtime(&utcTime, vmsTime))
       exit(2);

   /*
    *  convert the UTC to local 64-bit time.  Note that this is the
    *  value we would have read if we had issued a 'SYS$GETTIM' in
    *  the initial statement.
    */
   if (utc_vmslocaltime(vmsTime, &utcTime))
       exit(3);
   }
   /*****
    end example
    *****/