public function plusDuration(Duration $duration) : LocalDateTime
    {
        if ($duration->isZero()) {
            return $this;
        }

        $days = Math::floorDiv($duration->getSeconds(), LocalTime::SECONDS_PER_DAY);

        return new LocalDateTime($this->date->plusDays($days), $this->time->plusDuration($duration));
    }