AzParam(int argc, const char *argv[], bool inp_doCheck=true, char file_mark='@', char inp_dlm=',', char inp_kwval_dlm='=', char cmt='#') : sp_used_kw(100, 30) { doCheck = inp_doCheck; dlm = inp_dlm; kwval_dlm = inp_kwval_dlm; concat_args(argc, argv, &s_param, file_mark, dlm, cmt); param = s_param.c_str(); }
int main (int argc, char *argv[]) { int r; struct tm tm; time_t result; time_t now; time_t *nowp = NULL; char *argstr; int round = PARSE_TIME_NO_ROUND; char buf[1024]; const char *format = DEFAULT_FORMAT; struct option options[] = { { "help", no_argument, NULL, 'h' }, { "^", no_argument, NULL, 'u' }, { "^^", no_argument, NULL, 'U' }, { "_", no_argument, NULL, 'd' }, { "format", required_argument, NULL, 'f' }, { "ref", required_argument, NULL, 'r' }, { NULL, 0, NULL, 0 }, }; for (;;) { int c; c = getopt_long (argc, argv, "huUdf:r:", options, NULL); if (c == -1) break; switch (c) { case 'f': /* output format */ format = optarg; break; case 'u': round = PARSE_TIME_ROUND_UP_INCLUSIVE; break; case 'U': round = PARSE_TIME_ROUND_UP; break; case 'd': round = PARSE_TIME_ROUND_DOWN; break; case 'r': /* specify now in seconds since epoch */ now = (time_t) strtol (optarg, NULL, 10); if (now >= (time_t) 0) nowp = &now; break; case 'h': case '?': default: usage (argv[0]); return 1; } } if (optind == argc) return parse_stdin (stdin, nowp, round, format); argstr = concat_args (optind, argc, argv); if (!argstr) return 1; r = parse_time_string (argstr, &result, nowp, round); free (argstr); if (r) { const char *errstr = parse_time_strerror (r); if (errstr) fprintf (stderr, "ERROR: %s\n", errstr); else fprintf (stderr, "ERROR: %d\n", r); return r; } if (!localtime_r (&result, &tm)) return 1; strftime (buf, sizeof (buf), format, &tm); printf ("%s\n", buf); return 0; }