First git commit
[howmuchuseit.git] / howmucheck.c
1 #define _XOPEN_SOURCE /* glibc2 needs this */
2 #include <time.h>
3 #include <string.h>
4
5 #include "howmuchuseit.h"
6
7 int main(int argc, char *argv[])
8 {
9     FILE *fp;
10     struct tm *tmt;
11     int delta, cur_d = 0;
12     char bf[1024], tms[1024];
13     int len;
14     long sum, dt, h, m, s;
15
16     delta = (24 * 3600) - atoi(argv[1]) * 3600;
17     fp = stdin;
18
19     while (fgets(bf, 1024, fp)) {
20         if (bf[0] == '#')
21             continue;
22         sscanf(bf, "%ld:%d", &dt, &len);
23         if (((dt + delta) / (24 * 3600)) != cur_d) {
24             if (cur_d > 0) { 
25                 time_t cur_t;
26                 cur_t = (time_t)(cur_d * (24 * 3600) - delta);
27                 tmt = localtime((time_t *)&cur_t);
28                 strftime(tms, 1024, "%Y-%m-%d", tmt);
29                 h = sum / 3600;
30                 m = (sum - (h * 3600)) / 60;
31                 s = (sum - (h * 3600) - (m * 60));
32                 printf(" %s | %02ld:%02ld:%02ld\n", tms, h, m, s);
33             }
34             sum = 0;
35             cur_d = ((dt + delta) / (24 * 3600));
36         }
37         sum += (long)len;
38     }
39     if (cur_d > 0) { 
40         tmt = localtime((time_t *)&dt);
41         strftime(tms, 1024, "%Y-%m-%d", tmt);
42         h = sum / 3600;
43         m = (sum - (h * 3600)) / 60;
44         s = (sum - (h * 3600) - (m * 60));
45         printf(" %s | %02ld:%02ld:%02ld\n", tms, h, m, s);
46     }
47     
48 #if 0
49     t = time(NULL);
50     printf("CTIME: %d\n", (int)t);
51
52     memset(&tm, 0, sizeof(struct tm));
53     strptime(argv[1], "%Y-%m-%d %H:%M:%S %Z", &tm);
54     t = mktime(&tm);
55     printf(" TIME: %d\n", (int)t);
56
57     tmout = gmtime(&t);
58     t = mktime(tmout);
59     printf("GTIME: %d\n", (int)t);
60
61     tmout = localtime(&t);
62     t = mktime(tmout);
63     printf("LTIME: %d\n", (int)t);
64 #endif
65
66     exit(EXIT_SUCCESS);
67     
68 }