Trebuia sa afisez durata intre un startDate si un endDate. Aceasta trebuia sa fie afisata sub forma:
Durata este de: [years], [months], [days]
Problema a aparut cand trebuia sa determin daca 28,29,30 sau 31 de zile reprezinta o luna? Problema este ca nu am putut determina numarul de zile pentru o luna. Daca as alege 28, as ajunge ca sa calculez ca luna ianuarie contine si ea 28 de zile, cea ce este complet eronat. O alta situație in care pot sa ajung este sa aleg durata unei luni de 30( sau 29) de zile si atunci as ajunge intr-o situatie similara pentru luna februarie.
Problema apare in jurul date de 28 februarie. Rotunjirile care se fac in jurul acestei date(+/- o unitate de masura - care poate sa fie zi sau luna). Valoarea de tip TimeStamp sau DateTime pe care o adun sau o scad nu reprezinta mereu o valoarea buna, deoarece o luna poate sa aibe 28,29,30 sau 31 de zile.
Problema a apărut cînd am ajuns pe cazurile de mai jos:
30/01/2011 + 0 luna = 28/02/2011
29/01/2011 + 0 luna = 28/02/2011
28/01/2011 + 0 luna = 28/02/2011
30/01/2012 + 0 luna = 29/02/2012
29/01/2012 + 0 luna = 29/02/2012
28/01/2012 + 0 luna = 29/02/2012
28/01/2011 + 0 luna + o zi = 01/03/2011
29/01/2011 + 0 luna + o zi = 01/03/2011
01/03/2011 - 0 luna - o zi = 30/01/2011
01/03/2011 - 0 luna - o zi = 30/01/2011
Durata este de: [years], [months], [days]
Problema a aparut cand trebuia sa determin daca 28,29,30 sau 31 de zile reprezinta o luna? Problema este ca nu am putut determina numarul de zile pentru o luna. Daca as alege 28, as ajunge ca sa calculez ca luna ianuarie contine si ea 28 de zile, cea ce este complet eronat. O alta situație in care pot sa ajung este sa aleg durata unei luni de 30( sau 29) de zile si atunci as ajunge intr-o situatie similara pentru luna februarie.
Problema apare in jurul date de 28 februarie. Rotunjirile care se fac in jurul acestei date(+/- o unitate de masura - care poate sa fie zi sau luna). Valoarea de tip TimeStamp sau DateTime pe care o adun sau o scad nu reprezinta mereu o valoarea buna, deoarece o luna poate sa aibe 28,29,30 sau 31 de zile.
Problema a apărut cînd am ajuns pe cazurile de mai jos:
30/01/2011 + 0 luna = 28/02/2011
29/01/2011 + 0 luna = 28/02/2011
28/01/2011 + 0 luna = 28/02/2011
30/01/2012 + 0 luna = 29/02/2012
29/01/2012 + 0 luna = 29/02/2012
28/01/2012 + 0 luna = 29/02/2012
28/01/2011 + 0 luna + o zi = 01/03/2011
29/01/2011 + 0 luna + o zi = 01/03/2011
01/03/2011 - 0 luna - o zi = 30/01/2011
01/03/2011 - 0 luna - o zi = 30/01/2011
This comment has been removed by a blog administrator.
ReplyDelete