Tomohiko Sakamoto came up with a terse program for calculating the day of the week in 1993. His code was written in the C language. The non-portable code goes like this:

int dayofweek(unsigned int y, unsigned int m, unsigned int d)

{

y -= m < 3;

return (y + y/4 - y/100 + y/400 + "-bed=pen+mad."[m] + d) % 7;

}

Here is the portable version:

int dayofweek(int y, int m, int d)

{

static int t[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 };

y -= m < 3;

return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;

}

## Sunday, August 7, 2011

Subscribe to:
Posts (Atom)