Originariamente inviata da
valia
non partiamo da implementazioni, parti da ragionamenti: aggiungere il periodo di un mese al 30 di novembre, vuole dire 30 dicembre o 31 dicembre? perché aggiungere 1 periodo al 31 di luglio di porta al 31 di agosto e il periodo è sempre 1....è lì l'inghippo
E' quello che ho scritto fin'ora: è l'annoso problema di aggiungere 1 periodo (mese) ad una data posizionata alla fine di un mese di 30 giorni (o 28). L'algoritmo non fa alcuna considerazione sui giorni, se non alla fine per aggiustare un'eventuale data non valida (parliamo di campi dell'oggetto):
codice:
Anno: 2014; Mese: 11; Giorno: 30
Aggiungo 1 mese (viene fatto +1 al campo mese):
codice:
Anno: 2014; Mese: 12; Giorno: 30
Questa operazione può portare a date non valide: partiamo dal 31/05/2014...
codice:
Anno: 2014; Mese: 5: Giorno 31
// Aggiungo 1 mese
Anno: 2014; Mese: 6; Giorno 31
In questo caso si passa al check e all'adeguamento:
codice:
// Data non valida, adeguo il giorno
Anno: 2014; Mese: 6; Giorno 30
Ciao.