Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!cbatt!ihnp4!homxb!houxm!mtuxo!mtune!ariel!caelum!io!granjon!daimler!bocar!bearcat!desoto!cord!erc3bb!erc3ba!occrsh!occrsh.UUCP!tiger.UUCP!authorplaceholder From: authorplaceholder@tiger.UUCP.UUCP Newsgroups: comp.unix.wizards Subject: Re: Date conversion question Message-ID: <142700001@tiger.UUCP> Date: Tue, 10-Mar-87 11:37:00 EST Article-I.D.: tiger.142700001 Posted: Tue Mar 10 11:37:00 1987 Date-Received: Fri, 13-Mar-87 06:19:17 EST References: <222@devon.UUCP> Lines: 45 Nf-ID: #R:devon.UUCP:-22200:tiger.UUCP:142700001:000:900 Nf-From: tiger.UUCP!dic Mar 10 10:37:00 1987 I pulled this off of the net a few years ago so here it is again. No flames about this belonging in net.sources. /* * test as * zeller month day year * year in 1987 form */ main(argc,argv) int argc; char *argv[]; { char *zeller(); char *day; day = zeller(atoi(argv[1]), atoi(argv[2]), atoi(argv[3])); printf("Day = %s\n",day); exit(0); } /**************************************************************** Compute day of week given any date. Year passed as e.g. 1984. Algorithm by Zeller. ****************************************************************/ char * zeller (m,d,y) int m,d,y; { static char *day_wk[] = { "Sun","Mon","Tue","Wed","Thu","Fri","Sat" }; int y0, y1, y2, m1; int dbuf; m1 = ((m+9) % 12) + 1; y0 = (m <= 2)?(y-1):y; y1 = y0 / 100; y2 = y0 % 100; dbuf = ( (26*m1-2)/10 + d + y2 + y2/4 + y1/4 - 2*y1 ) % 7; if (dbuf < 0) dbuf += 7; return day_wk[dbuf]; }