improve Period::durationDiff