A me così da valori esatti ...
codice:
void num2date (long ng, int *gg, int *mm, int *aa)
{
for (*aa = 0; ((ng >= 365 && (!(isBisS(*aa))))||(ng >= 366 && isBisS(*aa))); (*aa)++)
if (isBisS(*aa))
ng -= 366;
else
ng -= 365;
for (*mm = 1;
(( *mm == 2 && (( ng > 29 && isBisS (*aa))||(ng> 28 && !isBisS (*aa))))
|| (( *mm == 4 || *mm == 6 || *mm == 9 || *mm == 11) && ng > 30)
|| ng > 31);
(*mm)++ )
{
if (*mm == 2)
if (isBisS(*aa))
ng -= 29;
else
ng -= 28;
else
if (*mm == 4 || *mm == 6 || *mm == 9 || *mm == 11)
ng -= 30;
else
ng -= 31;
}
*gg = ng+1;
return;
}