[ toxi_programer @ 04.05.2008. 18:40 ] @
Rešavajući problem brojenja dana u zadatom mesecu, a čitajući tekst sa http://msdn.microsoft.com/en-u...dar.getdaysinmonth(VS.71).aspx , došao sam do sledećeg koda:
Code:

System.Globalization.JulianCalendar cal = new System.Globalization.JulianCalendar();
int dana = cal.GetDayOfMonth(new DateTime(2008, 4, 1));


Međutim, dobijem"odgovor" da April ima samo 19 dana! A on ima 30, jelte... Ja ne znam gde grešim, zna li neko od vas?
[ Shadowed @ 04.05.2008. 19:44 ] @
GetDayOfMonth() ne radi to sto si mislio, nego vraca dan u mesecu iz datuma. Znaci, to je prvi + 18 = 19i dan u mesecu :)
Ne mogu se setiti da postoji metod za to sto hoces, ali to mozes lako napraviti. Samo napravi jedan niz od 12 elemenata i smesti brojeve dana u njega. Ukoliko bi recimo imao DataTime podatak mogao bi ovako dobiti broj dana u tom mesecu:
Code:

DataTime MyDate = new DateTime(2008, 4, 1);
int dana = DaysPerMonth[MyDate.Month];
[ vujkev @ 04.05.2008. 20:10 ] @
A šta ćemo za februar koji može da ima 28 ili 29 dana

Code:

Date.DaysInMonth(Now.Year, Now.Month)
[ toxi_programer @ 04.05.2008. 20:48 ] @
Heh, da...

Fala ljudi...
[ mmix @ 05.05.2008. 10:34 ] @
Ne znam da li postoji razlog sto si u inicijalnom post-u koristio Julian kalendar, ali ako radis sa tim kalendarom, DateTime.DaysInMonth ti nece raditi dobro:

Code:

            JulianCalendar cal = new JulianCalendar();
            int febJul = cal.GetDaysInMonth(2100, 2);
            int febDef = DateTime.DaysInMonth(2100, 2);


febJul ce biti 29, a febDef ce biti 28 jer je default kalendar gregorijanski. Julijanski kalendar ima prestupnu godinu svake 4 godine bez izuzetaka, gregorijanski ima svake 4 godine, ali nije prestupna ona godina koja je deljiva sa 100 i nije deljiva sa 400 (1900, 2100, 2200, 2300, 2500, itd). Tako tri put u 400 godina julijanski bezi za po dan.
[ flighter_022 @ 05.05.2008. 18:31 ] @
Hm, posto cemo u praksi retko koristiti datume van ranga 1900-2100, moze lepo da se napise funkcija koja proverava da li je prestupna godina ili ne, te da vrati vrednost, jer znamo da je broj dana po mesecima 31,28(29),31,30,31,30,31,31,30,31,30,31
[ Shadowed @ 05.05.2008. 19:57 ] @
Pa da, ali ta funkcija vec postoji - kao sto je vujkev napisao :)
[ flighter_022 @ 06.05.2008. 12:36 ] @
Procitah sada...