static function snapYear($dt, $direction) { if (!php_Boot::$skip_constructor) { switch ($direction) { case -1: return datetime__DateTime_DateTime_Impl_::yearStart($dt); break; case 1: $next = null; $time = datetime_utils_DateTimeUtils::addYear($dt, 1); $next = $time + 62135596800.0; return datetime__DateTime_DateTime_Impl_::yearStart($next); break; case 0: $next1 = datetime__DateTime_DateTime_Impl_::yearStart(datetime_utils_DateTimeSnapUtils_0($direction, $dt)); $previous = datetime__DateTime_DateTime_Impl_::yearStart($dt); if ($next1 - ($dt - 62135596800.0) > $dt - 62135596800.0 - $previous) { return $previous; } else { return $next1; } break; } } }
static function format($this1, $format) { return datetime_utils_DateTimeUtils::strftime($this1 - 62135596800.0 + 62135596800.0, $format); }
static function addMonth($dt, $amount) { $month = null; $month = datetime_utils_DateTimeUtils_4($amount, $dt, $month) + $amount; if ($month >= 12) { $years = Std::int($month / 12); $time = datetime_utils_DateTimeUtils::addYear($dt, $years); $dt = $time + 62135596800.0; $month -= $years * 12; } else { if ($month < 0) { $years1 = Std::int($month / 12) - 1; $time1 = datetime_utils_DateTimeUtils::addYear($dt, $years1); $dt = $time1 + 62135596800.0; $month -= $years1 * 12; } } $isLeap = datetime__DateTime_DateTime_Impl_::isLeapYear($dt); $day = null; $value = null; $days1 = Std::int(($dt - 62135596800.0 - datetime__DateTime_DateTime_Impl_::yearStart($dt)) / 86400) + 1; $value = datetime_utils_DateTimeMonthUtils::getMonthDay($days1, datetime__DateTime_DateTime_Impl_::isLeapYear($dt)); $max = datetime_utils_DateTimeMonthUtils::days($month, $isLeap); if ($value < 1) { $day = 1; } else { if ($value > $max) { $day = $max; } else { $day = $value; } } return datetime__DateTime_DateTime_Impl_::yearStart($dt) + datetime_utils_DateTimeMonthUtils::toSeconds($month, $isLeap) + ($day - 1) * 86400 + Std::int(($dt - Math::ffloor($dt / 86400) * 86400) / 3600) * 3600 + Std::int(($dt - Math::ffloor($dt / 3600) * 3600) / 60) * 60 + Std::int($dt - Math::ffloor($dt / 60) * 60); }