Period constructor
Creates a period of years, months, and/or days.
The result will be normalized as follows:
- -12 <
months< 12 years.sign==months.signif both are nonzero
The days field can't be normalized since the number of years or
months a period of days represents varies.
Period(months: 25) == Period(years: 2, months: 1);
Period(months: 12, days: 5) == Period(years: 1, days: 5);
Period(days: 35) == Period(days: 35); // unchanged
Period(years: -2, months: 1) == Period(years: -1, months: -11);
Period(years: 2, months: -1) == Period(years: 1, months: 11);
Implementation
const Period({int years = 0, int months = 0, int days = 0})
: this._normalizedSign(years + months ~/ 12,
months % 12 - (months % 12 != 0 && months < 0 ? 12 : 0), days);