他们是 .Net C# 中的现有方法,将公历持续时间加到开始日期吗?

Is their an existing method(s) in .Net C# that add up Gregorian duration to start date?

我正在寻找 .Net C# 中的现有方法,这些方法将 Gregorian duration 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 handling is tricky so I preferred to use existing method if their any."

注意: 我研究过此功能,但即使 visual studio 也无法在互联网上找到它。我省略了时间 (T) 等其他指示符以降低精度,但它可以完成,例如完整持续时间是 P1Y2M10DT2H30M。

我的 Noda Time 项目能够将 ISO-8601 持续时间解析为 Period 对象,然后可以将其用于具有 LocalDateLocalDateTime 值的日历算术。例如:

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 中没有任何东西是等价的。