VMS Help
DECdts, utc_mulftime
*Conan The Librarian
|
Multiplies a relative binary timestamp by a floating-point value.
Format
#include <utc.h>
int utc_mulftime(*result, *utc1, factor)
utc_t *result;
const utc_t *utc1;
const double factor;
Input
utc1
Relative binary timestamp.
factor
Real scale factor (double-precision floating-point)
Output
result
Resulting relative binary timestamp.
The Multiply a Relative Time by a Real Factor routine multiplies
a relative binary timestamp by a floating-point value. Either
or both may be negative; the resulting relative binary timestamp
has the appropriate sign. The unsigned inaccuracy in the relative
binary timestamp is also multiplied by the absolute value of the
floating-point value.
0 Indicates that the routine executed successfully.
-1 Indicates an invalid time argument or invalid results.
The following example scales and prints a relative time.
utc_t relutc, scaledutc;
struct tm sacledreltm;
char timstr[UTC_MAX_STR_LEN];
/*
* Assume relutc contains the time to scale.
* Scale it by a factor of 17...
*/
utc_multime(&scaledutc, /* Out: Scaled rel time */
&relutc, /* In: Rel time to scale */
17L); /* In: Scale factor */
utc_ascreltime(timstr, /* Out: ASCII rel time */
UTC_MAX_STR_LEN, /* In: Length of input str */
&scaledutc); /* In: Rel time to convert */
printf("%s\n",timstr);
/*
* Scale it by a factor of 17.65...
*/
utc_mulftime(&scaledutc, /* Out: Scaled rel time */
&relutc, /* In: Rel time to scale */
17.65); /* In: Scale factor */
utc_ascreltime(timstr, /* Out: ASCII rel time */
UTC_MAX_STR_LEN, /* In: Input str length */
&scaledutc); /* In: Rel time to convert */
printf("%s\n",timstr);
/*
* Convert it to a tm structure and print it.
*/
utc_reltime(&scaledreltm, /* Out: Scaled rel tm */
(long *)0, /* Out: Scaled rel nano-sec */
(struct tm *)0, /* Out: Scaled rel inacc tm */
(long *)0, /* Out: Scd rel inacc nanos */
&scaledutc); /* In: Rel time to convert */
printf("Approximately %d days, %d hours and %d minutes\n",
scaledreltm.tm_yday, scaledreltm.tm_hour, scaledreltm.tm_min);
utc_multime