Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site shell.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!godot!harvard!seismo!ut-sally!ut-ngp!shell!starr
From: starr@shell.UUCP (Bob Starr)
Newsgroups: net.sources
Subject: Day of Week Given Date Routine
Message-ID: <223@shell.UUCP>
Date: Sat, 8-Dec-84 23:54:43 EST
Article-I.D.: shell.223
Posted: Sat Dec  8 23:54:43 1984
Date-Received: Tue, 11-Dec-84 03:18:05 EST
Organization: Shell Development Co.  P&CS Dept., Houston TX
Lines: 28

To whoever requested a routine to figure the day of the week given
any date... Called zeller, since that's the guy who wrote the equations
(credit where credit is due).
 
======================Whack me off=====================================
 
/****************************************************************
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];
}