Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: FREE DAY, DNI ROBOCZE,
Forum PHP.pl > Forum > PHP
grzesio
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
nospor
Nie krzycz w temacie. Popraw tytuł, popraw bbcode

http://nospor.pl/liczba-dni-roboczych.html
vokiel
  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
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.