/* See LICENSE file for copyright and license details. */ #include #include #include #include #include "util.h" static void usage(void) { eprintf("usage: %s [-u] [-d format] [+FORMAT]\n", argv0); } int main(int argc, char *argv[]) { char buf[BUFSIZ]; char *fmt = "%c"; struct tm *now = NULL; struct tm *(*tztime)(const time_t *) = localtime; const char *tz = "local"; time_t t; t = time(NULL); ARGBEGIN { case 'd': t = estrtol(EARGF(usage()), 0); break; case 'u': tztime = gmtime; tz = "gm"; break; default: usage(); } ARGEND; if(argc > 0 && argv[0][0] == '+') fmt = &argv[0][1]; if(!(now = tztime(&t))) eprintf("%stime failed\n", tz); strftime(buf, sizeof buf, fmt, now); puts(buf); return EXIT_SUCCESS; }