14617Seric # include <ctype.h> 2*5200Seric # include "useful.h" 34617Seric 4*5200Seric SCCSID(@(#)convtime.c 3.2 12/06/81); 54617Seric 64617Seric /* 74617Seric ** CONVTIME -- convert time 84617Seric ** 9*5200Seric ** Takes a time as an ascii string with a trailing character 10*5200Seric ** giving units: 11*5200Seric ** s -- seconds 12*5200Seric ** m -- minutes 13*5200Seric ** h -- hours 14*5200Seric ** d -- days (default) 15*5200Seric ** w -- weeks 16*5200Seric ** 174617Seric ** Parameters: 184617Seric ** p -- pointer to ascii time. 194617Seric ** 204617Seric ** Returns: 214617Seric ** time in seconds. 224617Seric ** 234617Seric ** Side Effects: 244617Seric ** none. 254617Seric */ 264617Seric 274617Seric time_t 284617Seric convtime(p) 294617Seric char *p; 304617Seric { 31*5200Seric register time_t t, r; 324617Seric 33*5200Seric r = 0; 34*5200Seric while (*p != '\0') 354617Seric { 36*5200Seric t = 0; 37*5200Seric while (isdigit(*p)) 38*5200Seric t = t * 10 + (*p++ - '0'); 39*5200Seric switch (*p++) 40*5200Seric { 41*5200Seric case 'w': /* weeks */ 42*5200Seric t *= 7; 434617Seric 44*5200Seric case '\0': 45*5200Seric p--; 46*5200Seric /* fall through... */ 474617Seric 48*5200Seric case 'd': /* days */ 49*5200Seric default: 50*5200Seric t *= 24; 514617Seric 52*5200Seric case 'h': /* hours */ 53*5200Seric t *= 60; 544617Seric 55*5200Seric case 'm': /* minutes */ 56*5200Seric t *= 60; 57*5200Seric 58*5200Seric case 's': /* seconds */ 59*5200Seric break; 60*5200Seric } 61*5200Seric r += t; 624617Seric } 634617Seric 64*5200Seric return (r); 654617Seric } 66