public static function maxOf(LocalDate ...$dates) : LocalDate
    {
        if (! $dates) {
            throw new DateTimeException(__METHOD__ . ' does not accept less than 1 parameter.');
        }

        $max = LocalDate::min();

        foreach ($dates as $time) {
            if ($time->isAfter($max)) {
                $max = $time;
            }
        }

        return $max;
    }