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