WeakMap should keep results in memory, when invoking .year then .month then .day of the same date. To be tried out.