/* time2epoch.c - Determine the epoch age of a given date/time

   usage:  time2epoch        # (prints curent epoch time)
        or time2epoch Mth Day Year Hour Minute Second
               Mth is a value between 1 and 12
               Day is a value between 1 and 31
               Year is a 2-digit or 4-digit year
               Hour is a value between 0 and 23
               Minute is a value between 0 and 59
               Second is a value between 0 and 59
*/

#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <unistd.h>

char *Copyright="(C) 2000, Bob Vance" ;

void Usage(void *pgm)
    {
    fprintf(stderr,
     "Usage:\n\t   %s   # (prints curent epoch time)\n\tor %s Mth Day Year Hour Minute Second\n",
			 pgm, pgm) ;
    }

int main(int argc, char *argv[]) 
    {
    time_t    t1;
    struct tm date;

    if (argc != 7 && argc != 1)
        {
        Usage(argv[0]) ;
        exit(1) ;
        }

    if (argc == 1)						/*20000806jrv*/
    {								/*20000806jrv*/
    time(&t1) ;							/*20000806jrv*/
    }else							/*20000806jrv*/
    {								/*20000806jrv*/
    date.tm_mon = atoi(argv[1]) - 1;	/* Set month */
    date.tm_mday= atoi(argv[2]);	/* Set day */
    date.tm_year= atoi(argv[3]);	/* Set year */
    date.tm_hour= atoi(argv[4]);	/* Set hour */
    date.tm_min = atoi(argv[5]);	/* Set minute */
    date.tm_sec = atoi(argv[6]);	/* Set second */
    if (date.tm_year > 1900)		/* 4-digit date? */
        date.tm_year -= 1900 ;		/* yes, adjust */
    else if (date.tm_year < 50)		/* 2000-2049 */
        date.tm_year += 100;

    date.tm_isdst = -1;			/* Determine if DST is in effect *//*20000806jrv*/
    t1 = mktime(&date) ;		/* From struct to time_t */
    }

    printf("%ld\n", (long) t1);
    return 0 ;
    }								/*20000806jrv*/
