Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Jak sprawdzić czy rok 2009 jest przestępny ?
Morale
post
Post #1





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

Ostrzeżenie: (0%)
-----


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.

Ten post edytował drPayton 2.01.2008, 13:12:39
Powód edycji: Dodałem tag w temacie. @drPayton
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
sticker
post
Post #3





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


rok przestępny algorytm
Go to the top of the page
+Quote Post
Morale
post
Post #4





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował Morale 1.01.2008, 17:28:47
Go to the top of the page
+Quote Post
devnul
post
Post #5





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


bo jako parametr musisz podac date w sekundach http://pl.php.net/date
Go to the top of the page
+Quote Post
Morale
post
Post #6





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

Ostrzeżenie: (0%)
-----


ok, działa
Go to the top of the page
+Quote Post
nitro18
post
Post #7





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


Jeżeli podany rok jest podzielny bez reszty przez 4 to jest to rok przestępny, np.
2008 % 4 = 0 (OK)
2009 % 4 = 1
...
Go to the top of the page
+Quote Post
franki01
post
Post #8





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
qrees
post
Post #9





Grupa: Zarejestrowani
Postów: 275
Pomógł: 44
Dołączył: 23.11.2007

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
nitro18
post
Post #10





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
nevt
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


widzę, że króluje zamiłowanie do komplikowania sobie życia i kodu (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
w PHP najłatwiej uzyć
  1. <?php
  2. checkdate(2, 29, 2009);
  3. ?>
pozdrawiam...
Go to the top of the page
+Quote Post
nitro18
post
Post #12





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


Ciekaw czy byłbyś taki mądry jakbyś miał to w Delphi zrobić (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
devnul
post
Post #13





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


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)
Go to the top of the page
+Quote Post
phpion
post
Post #14





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(nevt @ 2.01.2008, 02:20:26 ) *
widzę, że króluje zamiłowanie do komplikowania sobie życia i kodu (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post
nitro18
post
Post #15





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


I Widzisz nevt, bez modulo to nie przejdzie. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
nevt
post
Post #16





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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... (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)

pozdrawiam serdecznie - skończmy ten wątek - chyba juz dość nabijania postów...
Go to the top of the page
+Quote Post
phpion
post
Post #17





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@nevt
o kurde, ale wstyd (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) faktycznie, prosty i sprytny sposób (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) gratuluję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) hehehe
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:44