他们是 .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
对象,然后可以将其用于具有 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 中没有任何东西是等价的。
我正在寻找 .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
对象,然后可以将其用于具有 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 中没有任何东西是等价的。