Noda Time
Normalize Method
NamespacesNodaTimePeriodNormalize()()()()

[This is preliminary documentation and is subject to change.]

Returns a normalized version of this period, such that equivalent (but potentially non-equal) periods are changed to the same representation.
Declaration Syntax
C#Visual BasicVisual C++
public Period Normalize()
Public Function Normalize As Period
public:
Period^ Normalize()
Return Value
The normalized period.
Remarks
Months and years are unchanged (as they can vary in length), but weeks are multiplied by 7 and added to the Days property, and all time properties are normalized to their natural range (where ticks are "within a millisecond"), adding to the larger property where necessary. So for example, a period of 25 hours becomes a period of 1 day and 1 hour. Aside from months and years, either all the properties end up positive, or they all end up negative.
Exceptions
ExceptionCondition
OverflowExceptionThe period doesn't have years or months, but it contains more than MaxValue ticks when the combined weeks/days/time portions are considered. Such a period could never be useful anyway, however. In some cases this may occur even though the theoretical result would be valid due to balancing positive and negative values, but for simplicity there is no attempt to work around this - in realistic periods, it shouldn't be a problem.
See Also

Assembly: NodaTime (Module: NodaTime.dll) Version: 1.2.0.0 (1.2.0)