1 static char *sccsid = "@(#)calendar.c 4.5 (Berkeley) 84/05/07"; 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 <sys/time.h> 9 10 #define DAY (3600*24L) 11 12 char *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 }; 26 struct tm *localtime(); 27 28 tprint(t) 29 long t; 30 { 31 struct tm *tm; 32 tm = localtime(&t); 33 printf("(^|[ (,;])((%s[^ \t]*[ \t]*|(0%d|%d)/)0*%d)([^0123456789]|$)\n", 34 month[tm->tm_mon], 35 tm->tm_mon + 1, tm->tm_mon + 1, tm->tm_mday); 36 printf("(^|[ (,;])((\\*[ \t]*)0*%d)([^0123456789]|$)\n", 37 tm->tm_mday); 38 } 39 40 main() 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 } 57