Являются ли они существующим методом в.Net C#, который добавляет григорианскую длительность к дате начала?
Я искал существующие методы в.Net C#, которые добавляют григорианскую продолжительность ISO 8681 к начальной дате, чтобы придумать конечную дату.
Например:
Start Date : 2007-03-01
Duration : P1Y2M10D
End Date : (Start Date + Duration) = 2008-05-11 // Pseudocode
: P1Y2M10D + 2007-03-01 = 2008-05-11 // Actual Representation
Есть ли какой-либо существующий метод в.Net, который уже делает это автоматически, прежде чем я сделаю это самостоятельно? "Время обработки сложно, поэтому я предпочел использовать существующий метод, если таковой имеется".
Примечание: я исследовал эту функциональность, но не могу найти ее в интернете даже в визуальной студии. Я опустил другое обозначение, например, Time (T), для снижения точности, но его можно завершить, например, для полной длительности P1Y2M10DT2H30M.
1 ответ
Мой проект Noda Time способен анализировать длительности ISO-8601 как Period
объекты, которые затем могут быть использованы для календарной арифметики с LocalDate
или же LocalDateTime
ценности. Например:
var pattern = PeriodPattern.NormalizingIsoPattern;
var text = "P1Y2M10D";
var start = new LocalDate(2007, 3, 1);
var period = pattern.Parse(text).Value;
var end = start + period;
Console.WriteLine("{0:yyyy-MM-dd}", end); // 2008-05-11
Я не верю, что в обычном.NET есть что-то эквивалентное.