summaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/main.c b/src/main.c
index 45f260f..8aa97a2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;
}