summaryrefslogtreecommitdiff
path: root/caln/mkevent.c
blob: 6c3f025feb64e754a30c42d419cb220f44784921 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

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]);
}