internal static string Serialize(OrdinalDateDuration ordinalDateDuration, ISO8601Options options) { if (options == null) { options = ISO8601Options.Default; } var output = new StringBuilder("P"); if (options.IsExpanded) { if (ordinalDateDuration.Years >= 0) { output.Append('+'); } } output.Append(ordinalDateDuration.Years.ToString("D" + options.YearLength)); if (options.UseComponentSeparators) { output.Append('-'); } output.AppendFormat("{0:D3}", ordinalDateDuration.Days); return output.ToString(); }
internal static CalendarDateDuration ToCalendarDateDuration(OrdinalDateDuration duration) { int days; return new CalendarDateDuration(duration.Years, Math.DivRem(duration.Days, 30, out days), days); }