function CheckDate1($d) { $response = 0; if ($d->getMonth() > 12) { $response = 1; } $numberOfDays = DaysInMonth($d); if ($d->getDay() > $numberOfDays['days']) { $response = 2; } return $response; }
function NextDate1(&$d) { $nrOfDays = DaysInMonth($d); if ($d->getDay() == 31 && $d->getMonth() == 12) { $d->setDay(1); $d->setMonth(1); $d->setYear($d->getYear() + 1); } elseif ($d->getDay() == $nrOfDays['days']) { $d->setDay(1); $d->setMonth($nrOfDays['month'] + 1); } else { $d->setDay($d->getDay() + 1); } }
function PrevDate1($d) { $checkDate = CheckDate1($d); if ($checkDate != 0) { return $d; } else { if ($d->getMonth() == 1 && $d->getDay() == 1) { echo '1'; $d->setDay(31); $d->setMonth(12); $d->setYear($d->getYear() - 1); } elseif ($d->getDay() == 1 && $d->getMonth() != 1) { echo '2'; $prevMonth = new TDate(10, $d->getMonth() - 1, $d->getYear()); $days = DaysInMonth($prevMonth); $d->setMonth($d->getMonth() - 1); $d->setDay($days['days']); } else { echo '3'; $d->setDay($d->getDay() - 1); } } return $d; }
function aumenta_fecha($fecha_Inicio, $inc) { $fecha_aux = split('/', $fecha_Inicio); if ($fecha_aux[0] + $inc <= DaysInMonth($fecha_aux[1], $fecha_aux[2])) { $fecha_aux[0] = $fecha_aux[0] + $inc; } else { if ($fecha_aux[0] + $inc > DaysInMonth($fecha_aux[1], $fecha_aux[2])) { if ($fecha_aux[1] + 1 < 13) { $aux = $fecha_aux[0] + $inc - DaysInMonth($fecha_aux[1], $fecha_aux[2]); $fecha_aux[1] = $fecha_aux[1] + 1; $fecha_aux[0] = $aux; } else { if ($fecha_aux[1] + 1 >= 13) { $aux = $fecha_aux[0] + $inc - DaysInMonth($fecha_aux[1], $fecha_aux[2]); $fecha_aux[2] = $fecha_aux[2] + 1; $fecha_aux[1] = 1; $fecha_aux[0] = $aux; } } } } $fecha = $fecha_aux[0] . "/" . $fecha_aux[1] . "/" . $fecha_aux[2]; return $fecha; }
function disminuye_fecha222222222222222($fecha_Inicio, $inc) { $fecha_aux = split('/', $fecha_Inicio); $mesAnterior = $fecha_aux[1] - 1; $anioAnterior = $fecha_aux[2] - 1; //if ($fecha_aux[0] + $inc <= DaysInMonth($fecha_aux[1],$fecha_aux[2])) if ($fecha_aux[0] - $inc > 0) { $fecha_aux[0] = $fecha_aux[0] - $inc; } else { if ($fecha_aux[0] - $inc <= 0) { //DaysInMonth($mesAnterior,$fecha_aux[2]) //if ($fecha_aux[1] + 1 < 13) if ($fecha_aux[1] - 1 > 0) { $aux = $fecha_aux[0] - $inc + DaysInMonth($mesAnterior, $fecha_aux[2]); $fecha_aux[1] = $fecha_aux[1] - 1; $fecha_aux[0] = $aux; } else { if ($fecha_aux[1] - 1 <= 0) { $aux = $fecha_aux[0] - $inc + DaysInMonth(12, $anioAnterior); $fecha_aux[2] = $anioAnterior; $fecha_aux[1] = 12; $fecha_aux[0] = $aux; } } } } $fecha = $fecha_aux[0] . "/" . $fecha_aux[1] . "/" . $fecha_aux[2]; return $fecha; }
<?php /** * Using the TDate type and the LeapYear function (see Param59), write an integer function DaysInMonth(D) * with a parameter D of TDate type. The function returns the amount of days for the month of date D. Output * the return values of this function for five given dates (all dates are assumed to be correct). */ include 'helper.php'; echo '<div style="display: none;">'; require_once '59.php'; echo '</div >'; use ParamPhpJavaScrit\TDate\TDate; /** * @param TDate $D * @return mixed */ function DaysInMonth($D) { $nrOfDays = $D->isLeapYear() ? 29 : 28; $days = array(1 => 31, 2 => $nrOfDays, 3 => 31, 4 => 30, 5 => 31, 6 => 30, 7 => 31, 8 => 31, 9 => 30, 10 => 31, 11 => 30, 12 => 31); //return 'month '.$D->getMonth().' have '.$days[$D->getMonth()].' DAYS'; return array('month' => $D->getMonth(), 'days' => $days[$D->getMonth()]); } $a = DaysInMonth(new TDate(12, 2, 2014)); var_dump($a);