diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 22 |
1 files changed, 17 insertions, 5 deletions
@@ -20,20 +20,32 @@ #include <stdio.h> #include <stdlib.h> #include <time.h> +#include <unistd.h> #include "datetime.h" int main(int argc, const char *argv[]) { - struct tm tm; + time_t arg; + time_t now; + time_t dif; - if (datetime_parse(argc - 1, argv + 1, &tm) < 0) { + if (datetime_parse(argc - 1, argv + 1, &arg) < 0) { return EXIT_FAILURE; } - printf("%d-%02d-%02dT%02d:%02d:%02d\n", - tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec); + setvbuf(stdout, NULL, _IONBF, 0); + time(&now); + while (arg > now) { + dif = arg - now; + printf("\r%02d:%02d:%02d", + (int) dif / 60 / 60, + (int) dif / 60 % 60, + (int) dif % 60); + sleep(1); + time(&now); + } + puts(""); return EXIT_SUCCESS; } |