Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> FREE DAY, DNI ROBOCZE,, Jak wykryć święto, dzień wolny od pracy
grzesio
post 13.04.2011, 15:20:21
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.12.2003
Skąd: Wisła

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


Napisałem coś takiego fajnego
1. Czy jest może bardziej skondensowanego kodu rozwiazanie ?
2. Czy są jeszcze święta polskie o których zapomniałem ?


[php]
function dodaj_dzien($data) {

$old_date = strtotime($data);

$new_date = strtotime("+1 day" ,$old_date);

$new_date = date("Y-m-d",$new_date);


return $new_date;


}

function swieta_wekendy ($rok,$miesiac,$dzien){


$data = "$rok-$miesiac-$dzien";

$ndata = date("Y-m-d",strtotime($data));

$swieto = true;

while ($swieto) {

$swieto = false;
echo date("l",strtotime($ndata));

// Swieta stale
if ($ndata == $rok."-01-01") { $swieto=true; $ndata=dodaj_dzien($ndata); } // 1 Nowy rok
if ($ndata == $rok."-05-01") { $swieto=true; $ndata=dodaj_dzien($ndata); } // 1 maja 2010 sobota 1 Maja – Święto Pracy
if ($ndata == $rok."-05-03") { $swieto=true; $ndata=dodaj_dzien($ndata); } // 3 maja 2010 poniedziałek Święto Konstytucji 3 Maja
if ($ndata == $rok."-07-15") { $swieto=true; $n
Go to the top of the page
+Quote Post
nospor
post 13.04.2011, 15:22:23
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie krzycz w temacie. Popraw tytuł, popraw bbcode

http://nospor.pl/liczba-dni-roboczych.html


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
vokiel
post 13.04.2011, 18:47:16
Post #3





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


  1. <?php
  2. /**
  3.  * Klasa do obsługi dni świątecznych (wolnych od pracy)
  4.  * @author Vokiel <a href="http://vokiel.com" target="_blank">http://vokiel.com</a>
  5.  */
  6. class christmasDays{
  7. /*
  8. * Tablica dni świątecznych w danym roku
  9. */
  10. public $christmasDays = array();
  11.  
  12. /**
  13. * Tworzenie listy świąt w danym roku
  14. *
  15. * @param int $year
  16. */
  17. public function generateChristmasDays($year){
  18. $easter = easter_date(intval($year));
  19. $this->christmasDays = array(
  20. $year.'-01-01', // nowy rok
  21. date('Y-m-d', $easter), // pierwszy dzien wielkiej nocy
  22. date('Y-m-d', strtotime('+ 1 day', $easter)), // drugi dzien wielkiej nocy
  23. $year.'-05-01', // 1 maja
  24. $year.'-05-03', // 3 maja
  25. date('Y-m-d', strtotime('+ 49 days', $easter)), // zielone swiatki
  26. date('Y-m-d', strtotime('+ 60 days', $easter)), // boze cialo
  27. $year.'-08-15', // 15 sierpnia
  28. $year.'-11-01', // 1 listopada
  29. $year.'-11-11', // 11 listopada
  30. $year.'-12-25', // 25 grudnia
  31. $year.'-12-26' // 26 grudnia
  32. );
  33. }
  34.  
  35. /**
  36. * Sprawdzenie czy dana data to święto
  37. *
  38. * @param string $data
  39. * @return bool
  40. */
  41. public function checkChristmasDay($data){
  42. if (in_array($data,$this->christmasDays) || date('w',strtotime($data))==0){
  43. return true;
  44. }else {
  45. return false;
  46. }
  47. }
  48. }
  49. ?>


Przerobić to sobie na helper, metody statyczne, czy jakkolwiek chcesz to już sobie sam zrobisz wink.gif


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.06.2025 - 21:35