|  |   
     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) 
 
 
 |