ďťż
Podstrony
|
telcocafeTen kod ma pokazywać ile dni zostało do urodzin, jednak jest w nim błąd? Gdzie?<?php function daysToBirthday($data){ $born = strtotime($data); //zmieniamy datę urodzin na liczbe sekund od 1 stycznia 1970 $m = date('m', $born); $d = date('d', $born); $y = date('Y'); $born = strtotime($d.'-'.$m.'-'.$y); $diff = $born - time(); //obliczamy różnice między obecną datą a datą urodzin if($diff < 0)$diff += 3600*24*365; if(($y % 4 == 0 && $y % 100 != 0) || $y % 400 == 0)$diff+=3600*24; return (int)($diff/(3600*24)); //zmiana sekund na dni } $lines = file('urodziny.txt'); $min = 100; $minName = ''; foreach($lines as $line){ list($name, $date) = explode(',',$line); $days = daysToBirthday($date); if($days < $min){ $min = $days; $minName = $name; } } echo 'Najwczesniej urodziny ma '.$minName.' bedzie to za '.$min.' dni.'; ?> Zrobiłem Ci funkcję zwracającą pozostałą liczbę dni do urodzin (format dzień.miesiąc[29.06]). Z odczytywaniem z pliku sam sobie powinieneś poradzić. function obliczdate($date) { $tab1 = explode('.', $date); $tab2 = explode('.', date('d.m'); $tab3[1] = 31; $tab3[2] = 28; $tab3[3] = 31; $tab3[4] = 30; $tab3[5] = 31; $tab3[6] = 30; $tab3[7] = 31; $tab3[8] = 31; $tab3[9] = 30; $tab3[10] = 31; $tab3[11] = 30; $tab3[12] = 31; if ($tab1[1]!=$tab2[1]) { $dni = $tab3[$tab2[1]] - $tab2[0]; $i = $tab2[1]; $j = $tab1[1]; do { $dni += $tab3[$i]; $i++; } while ($i!=$j) $dni -= $tab3[$tab1[1]] - $tab1[0]; } elseif ($tab1[1]==$tab2[1]) { $dni = $tab3[$tab2[1]] - $tab1[0]; } return $dni; } |
|||
Sitedesign by AltusUmbrae. |