DCF ptakovina - videli jste to uz nekdy?

Jakub Ladman ladmanj@volny.cz
Pondělí Únor 18 01:09:42 CET 2008


Dne Sunday 17 February 2008 17:55:25 Jiri Bezstarosti napsal(a):
> Staci urcit pocet dni od zacatku nejakeho roku co uz byl, pricist jakym
> dnem ten rok zacal a pak modulo sedmi ;).

To jsem vedel i bez tebe :-) ale stejne mam dneska neuveritelny zachvat 
blbosti. Nedovedu pochopit proc mi tohle nefunguje:

Rok je 0-99, prvni den i mesic jsou 1, ve vystupu ma byt pondeli 0.

int days_in_month[] = {31,28,31,30,31,30,31,31,30,31,30,31,29};
int dvt (int rok, int mesic, int den) {
	int d;
	d = rok + 4;	//za kazdy rok od 1.1.1996 pricteme den 	
 	d += (d/4);	//za kazdy uplynuly prestupny rok pricteme den
	int i,j;
	for(i=mesic-1;i>0;i--){	//pro kazdy cely uplynuly mesic soucasneho roku
						//budeme pricitat pocet jeho dnu
		j = i-1;			//index poctu dnu v mesici v tabulce
		if ((j==1)&&!(rok%4)) j=12;	//je-li aktualne zpracovavany mesic unor 
								//a je-li prestupny rok
								//koukneme se na alternativni delku unora
		d += days_in_month[j];
	}
	d += den;//-1;				//pricteme pocet uplynulych dnu v aktualnim mesici
	return d%7;
}

Nic nechapu, srovnavam-li to s kalendarem pro ruzne roky, tak to nekdy sedi 
nekdy ne, asi jsem uz uplny zhovadilec :-(


Jakub Ladman



Další informace o konferenci Hw-list