Rewrite internals.

NSDateComponents is now used for all date components instead of only for months and years.