#include #include #include #include static void usage() { fprintf(stderr, "mkevent \"contents\" Tomorrow | NUM NUM [NUM]\n"); exit(1); } int main (int argc, char **argv) { if (argc < 3) usage(); time_t ut = time(NULL); struct tm *t = localtime(&ut); if ((strcmp(argv[2], "tomorrow") & strcmp(argv[2], "Tomorrow") & strcmp("Tom", argv[2])) == 0) ut += 86400; else { char buf[256] = {0}; snprintf(buf, 256, "%s %s", (argv[2]) ? argv[2] : "", (argv[3]) ? argv[3] : ""); int day, month; int ret = sscanf(buf, "%d %d", &day, &month); t->tm_mday = day; t->tm_mon = month - 1; if (ret < 2) usage(); ut = mktime(t); } printf("%zu|%s\n", ut, argv[1]); }