используйте NodaTime для расчета инклюзивного периода дней

Так, например, если у меня есть следующий код:

var nodaStart = new LocalDate(2012, 5, 1);
var nodaEnd = new LocalDate(2012,5,2);
var daysBetween = Period.Between(nodaStart, nodaEnd,PeriodUnits.Day);

ЗатемdaysBetween.Days == 1

Однако диапазон, который я рассчитываю, должен учитывать это как 2 дня. т. е. он должен включать дату начала и окончания.

Фактический метод может принимать начальную и конечную даты (, отстоящие друг от друга не более чем на год ), и должен вычислять количество дней. Если дней больше 31, остаток возвращается как количество целых недель.

У меня эта логика работает нормально, но из-за эксклюзивного подсчета у меня один день.

Думаю, я могу просто выполнить startDate.addDays(-1)до того, как создам из него nodaStart, но мне интересно, есть ли более элегантный/красивый способ, чтобы нода возвращал период.

Спасибо


ОБНОВЛЕНИЕ :Я прочитал исходный код для класса Period, и оператор +перегружен, поэтому я могу добавить

daysBetween += Period.FromDays(1);

6
задан Hamid Pourjam 19 April 2015 в 08:16
поделиться