|   | 
  
     utc_mkanytime(3dts)
Converts a tm structure and TDF (expressing the time in an arbitrary time zone) to a binary timestamp 
Synopsis 
#include <dce/utc.h>    int utc_mkanytime(   	utc_t *utc,   	struct tm *timetm, 
  	long tns,   	struct tm *inacctm,   	long ins,   	long tdf); 
 
Parameters 
Input 
timetm  A tm structure that expresses the local time; tm_wday and tm_yday are ignored on input; the value of tm_isdt should be -1. 
tns  Nanoseconds since the Time component. 
inacctm  A tm structure that expresses days, hours, minutes, and seconds of inaccuracy.  If a null pointer is passed, or if tm_yday is negative, the inaccuracy 
is considered to be unspecified; tm_mday, tm_mon, tm_wday, and tm_isdst are ignored on input. 
 
ins  Nanoseconds of the inaccuracy component. 
tdf  Time Differential Factor to use in conversion. 
Output 
utc  Resulting binary timestamp. 
Description  The utc_mkanytime( ) routine converts a tm structure and TDF (expressing the time in an arbitrary time zone) to a binary timestamp.  Required 
inputs include nanoseconds since Time, and nanoseconds of inaccuracy. 
 
Return Values  ~0 	Indicates that the routine executed successfully. 
1 	Indicates an invalid time argument or invalid results. 
Examples  The following example converts a string ISO format time in an arbitrary time zone to a binary timestamp.  This may be part of an input timestamp routine, although a 
real implementation includes range checking. 
 
utc_t       utc;  struct tm   tmtime, tminacc;  float       tsec, isec;  double      tmp;  long        tnsec, insec;  int         i, 
offset, tzhour, tzmin, year, mon;  char        *string;    /*  Try to convert the string...                                   */   
 if(sscanf(string, "%d-%d-%d-%d:%d:%e+%d:%dI%e",            &year, &mon, &tmtime.tm_mday, &tmtime.tm_hour,            &tmtime.tm_min, &tsec, &tzhour, 
&tzmin, &isec) != 9) {    /*  Try again with a negative TDF...                               */    if (sscanf(string, 
"%d-%d-%d-%d:%d:%e-%d:%dI%e",             &year, &mon, &tmtime.tm_mday, &tmtime.tm_hour,             &tmtime.tm_min, &tsec, &tzhour, &tzmin, &isec) != 9) { 
   /*  ERROR                                                          */            exit(1);      }    /*  TDF is 
negative                                                */        tzhour = -tzhour;      tzmin = -tzmin;  }    /*  Fill in the 
fields...                                          */    tmtime.tm_year = year - 1900;  tmtime.tm_mon = --mon;  tmtime.tm_sec = tsec; 
 tnsec = (modf(tsec, &tmp)*1.0E9);  offset = tzhour*3600 + tzmin*60;  tminacc.tm_sec = isec;  insec = (modf(isec, &tmp)*1.0E9);   
 /* Convert to a binary timestamp...                                */    utc_mkanytime(&utc,       /* Out: Resultant binary timestamp       */         
       &tmtime,    /* In:  tm struct that represents input  */                tnsec,      /* In:  Nanoseconds from input           */                &tminacc,   /* In:  tm 
struct that represents inacc  */                insec,      /* In:  Nanoseconds from input           */                offset);    /* In:  TDF from input                   */ 
 
Related Information  Functions: 
utc_anytime(3dts) 
utc_anyzone(3dts) 
 
 
  |