function setDate($year = null, $month = null, $day = null) { if (!isset($year)) { $year = parent::format('Y'); } if (!isset($month)) { $month = parent::format('m'); } if (!isset($day)) { $day = parent::format('d'); } if ($day < 0) { $day += RepeatRuleDateTime::daysInMonth($year, $month) + 1; } parent::setDate($year, $month, $day); return $this; }