Così, per esempio se ho il seguente codice:uso NodaTime per calcolare un periodo compreso giorni
var nodaStart = new LocalDate(2012, 5, 1);
var nodaEnd = new LocalDate(2012,5,2);
var daysBetween = Period.Between(nodaStart, nodaEnd,PeriodUnits.Day);
Poi daysBetween.Days == 1
Tuttavia, la gamma a calcolare esigenze per contare che, come 2 giorni. cioè deve includere la data di inizio e di fine.
Il metodo effettivo può richiedere e iniziare e terminare la data (che non è più di un anno) e deve calcolare il numero di giorni. Se ci sono più di 31 giorni, il resto viene restituito come numero di intere settimane.
Ho quella logica che funziona bene ma perché il conto è esclusivo, sono un giorno fuori.
Credo di poter fare solo startDate.addDays(-1)
prima di creare nodaStart
da esso, ma mi chiedo se ci sia un modo più elegante/bello per avere il ritorno del Periodo in noda.
Grazie
UPDATE: ho avuto una lettura di the source code per la classe Period
e l'operatore +
è sovraccarico in modo da poter aggiungere
daysBetween += Period.FromDays(1);
lavoro per Jon Skeet –
Se lo fai questo, probabilmente dovresti fare invece endDate.AddDays (1). 2012/05/02 è 2012/05/02 00:00 - cioè la mattina del 2. Vuoi la notte del 2 °, quindi aggiungi un giorno alla fine, invece di sottrarre un giorno dall'inizio. –