date and time created 83/02/11 15:45:08 by rrh
[unix-history] / usr / src / usr.bin / calendar / calendar.c
CommitLineData
bdeaa584 1static char *sccsid = "@(#)calendar.c 4.3 (Berkeley) 82/06/28";
96287344
BJ
2/* /usr/lib/calendar produces an egrep -f file
3 that will select today's and tomorrow's
4 calendar entries, with special weekend provisions
5
6 used by calendar command
7*/
8#include <time.h>
9
10#define DAY (3600*24L)
11
12char *month[] = {
13 "[Jj]an",
14 "[Ff]eb",
15 "[Mm]ar",
16 "[Aa]pr",
17 "[Mm]ay",
18 "[Jj]un",
19 "[Jj]ul",
20 "[Aa]ug",
21 "[Ss]ep",
22 "[Oo]ct",
23 "[Nn]ov",
24 "[Dd]ec"
25};
26struct tm *localtime();
27
28tprint(t)
29long t;
30{
31 struct tm *tm;
32 tm = localtime(&t);
bdeaa584
BJ
33 printf("(^|[ (,;])((%s[^ ]* *|(0%d|%d)/)0*%d)([^0123456789]|$)\n",
34 month[tm->tm_mon],
35 tm->tm_mon + 1, tm->tm_mon + 1, tm->tm_mday);
492e9668
BJ
36 printf("(^|[ (,;])((\\* *)0*%d)([^0123456789]|$)\n",
37 tm->tm_mday);
96287344
BJ
38}
39
40main()
41{
42 long t;
43 time(&t);
44 tprint(t);
45 switch(localtime(&t)->tm_wday) {
46 case 5:
47 t += DAY;
48 tprint(t);
49 case 6:
50 t += DAY;
51 tprint(t);
52 default:
53 t += DAY;
54 tprint(t);
55 }
56}