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);
 }
Example #3
0
 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);
 }