/* This file contains subroutines to deal with time */ #include #include #include #include /* First, copy a timeb structure */ int timecopy(struct timeb src, struct timeb *dest) { dest->time = src.time; dest->millitm = src.millitm; dest->timezone = src.timezone; dest->dstflag = src.dstflag; } /* Calculate the difference in time between two time structures */ int timesub(struct timeb first, struct timeb second, struct timeb *dest) { dest->timezone = first.timezone; dest->dstflag = first.dstflag; dest->millitm = first.millitm - second.millitm; dest->time = first.time - second.time; while( dest->millitm < 0 ) { dest->millitm += 1000; dest->time -= 1; } while( dest->millitm > 1000 ) { dest->millitm -= 1000; dest->time += 1; } } /* The double precision number of seconds in a time. */ double timesize( struct timeb a) { return ( ( (double) a.time) + 0.001 * a.millitm ); } int timeprint(struct timeb a) { printf("Time: %ld %d\n",a.time, a.millitm); fflush(stdout); }