Avoid duplicated compuations with DateTime.GetDatePart
- Remove duplicate code in GregorianCalendar. GetDatePart is identical to the implementation in DateTime. Just reuse it via the Year/Month/Day properties. Also avoids an unnecessary virtual call.
- Then copy GetDatePart into a version that returns year/month/day rather than just one of them.
- And use that in several places throughout corelib where all three are retrieved, avoiding redoing all of the calculations three times.
Commit migrated from https://github.com/dotnet/coreclr/commit/
17c23bed6395f3e12dc0b4471b2bb566c3aa136c