1
Name:
Anonymous
2008-12-17 19:59
$ cal 5875707
cal: year 5875707 not in range 1..5875706
What is the significance of the year 5875706? Why stop there? This seems like some kind of RMS Michael Shuttleworth ploy to fuck us over in the calendar department.
22
Name:
Anonymous
2008-12-18 1:28
/* usage: argv[0] y m d
m and d are 1-based */
#include <stdio.h>
int yeldtab[] = {0,31,59,90,120,151,181,212,243,273,304,334};
char *daynames[] = { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" };
int isleap(int yrm1) {
int dd;
yrm1++;
return (yrm1&3)?(dd=yrm1%100)?1:(dd&3)?0:1:0;
}
main(int argc, char **argv) {
if(argc==4) {
unsigned int yrm1 = atoi(argv[1])-1;
unsigned int mnth = atoi(argv[2])-1;
unsigned int date = atoi(argv[3])-1;
unsigned int adn = 365*yrm1;
unsigned int ax = yrm1/100;
unsigned int dx = yrm1%100;
adn -= ax;
ax /=4;
adn += ax;
adn += yrm1/4;
adn += yeldtab[mnth];
if(mnth>2)
adn += isleap(yrm1);
adn += date;
printf("ADN for %u-%u-%u (%s) is %u\n",yrm1+1,mnth+1,date+1,daynames[(adn+1)%7],adn+1);
}
}