public function adjustedTo($reference_date): self
    {
        if (!$reference_date instanceof DateTimeImmutable) {
            $reference_date = Datepoint::create($reference_date);
        }

        $duration = self::create($reference_date->diff($reference_date->add($this)));
        if ($duration == $this) {
            return $this;
        }

        return $duration;
    }