Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak sprawdzić czy rok 2009 jest przestępny ?
Forum PHP.pl > Forum > Przedszkole
Morale
Mam takie pytania:

1. Jak sprawdzić czy rok 2009 jest przestępny.

Dla aktualnego roku to jest
  1. <?php
  2. date('L')
  3. ?>

Ale nie wiem jak dla innego to sprawdzić.

2. Czy jest jakaś funkcja, która pokaże mi najbliższy rok przestępny.
phpion
1. Dla funkcji date() podaj drugi parametr będący odpowiednią datą. Możliwe, że wystarczy sam rok; jeśli nie to podaj dowolną datę z danego roku.
2. Raczej nie (przynajmniej nie znam) ale możesz sam taką napisać; po prostu zwiększasz nr roku aż do momentu gdy aktualny będzie przestępny. Liczba inkrementacji nie powinna przekroczyć 4 co jest oczywiste winksmiley.jpg
sticker
rok przestępny algorytm
Morale
Cytat(sticker @ 1.01.2008, 17:17:11 ) *

szkoda, że nie ma w php


to nie działa:

  1. <?php
  2. date("L", '2009');
  3. ?>


ani to:

  1. <?php
  2. date("L", '29/2/2009');
  3. ?>
devnul
bo jako parametr musisz podac date w sekundach http://pl.php.net/date
Morale
ok, działa
nitro18
Jeżeli podany rok jest podzielny bez reszty przez 4 to jest to rok przestępny, np.
2008 % 4 = 0 (OK)
2009 % 4 = 1
...
franki01
Cytat(nitro18 @ 1.01.2008, 22:55:06 ) *
Jeżeli podany rok jest podzielny bez reszty przez 4 to jest to rok przestępny, np.
2008 % 4 = 0 (OK)
2009 % 4 = 1
...


Nie zawsze tak jest. Jest cos takiego ze jak rok dzieli sie przez 40, to rok ten nie jest przestepnym. Sa jakies takie reguly, wiec niewarto przez dzielenie tego zalatwiac smile.gif
qrees
Cytat(franki01 @ 1.01.2008, 23:03:07 ) *
Nie zawsze tak jest. Jest cos takiego ze jak rok dzieli sie przez 40, to rok ten nie jest przestepnym. Sa jakies takie reguly, wiec niewarto przez dzielenie tego zalatwiac smile.gif


Reguły są trzy:
jeżeli dzieli się przez 400 to jest przestępny, w przeciwnym wypadku
jeżeli dzieli się przez 100 to jest zwykły, w przeciwnym wypadku
jeżeli dzieli się przez 4 to jest przestępny

Nie bardzo sobie wyobrażam, jak chcesz to załatwić bez dzielenia (tudzież modulo)... Można jeszcze rok skonwertować do tekstu i sprawdzać ostatnie cyfry... ale dzielenie chyba jest prostrze
nitro18
franki01 jak będziesz zdawał maturę z informatyki to się dowiesz jaki algorytm jest na sprawdzenie czy dany rok jest przestępny.
I zgadzam się w 100% z qreesem że bez modulo nie załatwisz sprawy... Qrees dzięki za przypomnienie regułek winksmiley.jpg
nevt
widzę, że króluje zamiłowanie do komplikowania sobie życia i kodu biggrin.gif
w PHP najłatwiej uzyć
  1. <?php
  2. checkdate(2, 29, 2009);
  3. ?>
pozdrawiam...
nitro18
Ciekaw czy byłbyś taki mądry jakbyś miał to w Delphi zrobić tongue.gif
devnul
a kto tu pisał o delphi? jesteśmy na forum o delphi czy o php? zreszta tak w delphi, php i wielu innych językach można to prosto zrobić (czasem nawet bardzo prosto - jak to już pokazał nevt)
phpion
Cytat(nevt @ 2.01.2008, 02:20:26 ) *
widzę, że króluje zamiłowanie do komplikowania sobie życia i kodu biggrin.gif
w PHP najłatwiej uzyć
  1. <?php
  2. checkdate(2, 29, 2009);
  3. ?>
pozdrawiam...

Hmmm a czy przypadkiem checkdate" title="Zobacz w manualu PHP" target="_manual nie sprawdza czy podana data jest poprawna? Autorowi tematu chodziło przecież o to czy dany rok jest przestępny czy nie.
nitro18
I Widzisz nevt, bez modulo to nie przejdzie. tongue.gif
nevt
phpion.com
Cytat
Hmmm a czy przypadkiem checkdate nie sprawdza czy podana data jest poprawna? Autorowi tematu chodziło przecież o to czy dany rok jest przestępny czy nie.

właśnie to wykorzystałem - takie wywołanie jak przedstawiłem zwróci TRUE jeżeli podstawiony rok będzie przestępny (bo 29 lutego będzie prawidłową datą) lub FALSE w przeciwnym wypadku (bo 29 lutego będzie nieprawidłową datą) - Działa na 100 % - SPRAWDZIŁEM smile.gif - czyli mamy dokładnie rezultat o który chodzi w tym wątku...

nitro18
Cytat
I Widzisz nevt, bez modulo to nie przejdzie.

a jednak przejdzie... guitar.gif

pozdrawiam serdecznie - skończmy ten wątek - chyba juz dość nabijania postów...
phpion
@nevt
o kurde, ale wstyd biggrin.gif faktycznie, prosty i sprytny sposób smile.gif gratuluję smile.gif hehehe
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.