[ agkiki @ 30.09.2013. 17:17 ] @
Pozdravljam sve i izvinjavam se ako sam promašio temu, imam sl. problem.
Recimo da imam 100 dana nekog rada i treba da mi prikaže koliko je to meseci i dana.
Da pojasnim, kada sabere recimo 30 dana da mi prikaže da je to 1 mesec ili 70 dana
da prikaže da je to 2 meseca i 10 dana, a kada dođem do 12 meseci da mi prikaže da je to 1 godina.
Pozdrav ika
[ dusans @ 30.09.2013. 19:33 ] @
Evo ti jedna ideja:

div = celobrojno deljenje
mod = ostatak pri celobrojnom deljenju

Godine = BD div 365
Meseci = (BD mod 365) div 30.4
Dani = (BD mod 365) mod 30.4

Na kraju ispisuješ samo ono što ti je veće od 0.
Ovo je nije precizna metoda!

Ako pak imaš dva konkretna datuma (a ne samo broj dana),
onda je najbolje da koristiš ugrađene funkcije za rad sa datumima (koje nisu baš proste da bi ih sam pisao)
tako da dobiješ apsolutno precizne podatke.
[ Nedeljko @ 01.10.2013. 10:25 ] @
Imaš ovde algoritam za konverziju između gregorijanskog kalendara i JDN (julian day number). JDN je redni broj dana počev od neke epohe. Pretvori datum u taj broj, pa dodaj 100 na taj broj, pa pretvori to natrag u datum. E, kada dobiješ datume, onda možeš ovako da odrediš koliko je proteklo od datuma (d1,m1,g1) do datuma (d2,m2,g2):

Neka je G=g2-g1, M=m2-m1, D=d2-d1.

Ako je D<0, onda M smanji za 1, a D neka bude broj dana protekao od datuma d1 u mesecu koji je prethodio mesecu m2 u godini g2 do datuma (d2,m2,g2). Ako taj prethodni mesec nema d1 dana, uzeti poslednji dan u tom mesecu.

Ako je M<0, smanjiti G za 1, a M povećati za 12.

Primer: Od datuma 31.5.2013. do 1.3.2014. koliko je prošlo?

D=-30, M=-2, G=1.

Obzirom da je D<0, smanjujemo M za jedan, a D treba da bude broj dana počev od 31.2.2014. do 1.3.2014. Obzirom da 31 februar ne postoji, D je broj dana od 28.2.2014. 1.3.2014, odnosno D=1, M=-1.

Obzirom da je M<0, M uvećavamo za 12, a G smanjujemo za 1. Dakle, M=11, G=0.

Konačno, između ta dva datuma je prošlo 11 meseci i 1 dan.

Naravno, ovo je samo jedan od mogućih načina definisanja broja godina, meseci i datuma iuzmeđu dva datuma.
[ agkiki @ 01.10.2013. 20:09 ] @
Hvala puno na brzom odgovoru.
ika