private static bool DateEgale(DataCalendaristica d1, DataCalendaristica d2) { if ((d1.zi == d2.zi) && (d1.luna == d2.luna) && (d1.an == d2.an)) { return true; } return false; }
private static int DiferentaZile(DataCalendaristica azi, DataCalendaristica dataNasterii) { int contor = 0; while (!DateEgale(azi, dataNasterii)) { azi = ScadOZi(azi); contor++; } return contor; }
private static DataCalendaristica ScadOZi(DataCalendaristica azi) { if (azi.zi > 1) { azi.zi--; } else { switch (azi.luna) { case LunileAnului.Ianuarie: azi.luna = LunileAnului.Decembrie; azi.zi = 31; azi.an--; break; case LunileAnului.Februarie: case LunileAnului.Aprilie: case LunileAnului.Iunie: case LunileAnului.August: case LunileAnului.Septembrie: case LunileAnului.Noiembrie: azi.luna--; azi.zi = 31; break; case LunileAnului.Mai: case LunileAnului.Iulie: case LunileAnului.Octombrie: case LunileAnului.Decembrie: azi.luna--; azi.zi = 30; break; case LunileAnului.Martie: azi.luna = LunileAnului.Februarie; if (Bisect(azi.an)) azi.zi = 29; else azi.zi = 28; break; default: break; } } return azi; }