Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt sczęśliwego numerka- proste
Forum PHP.pl > Forum > Przedszkole
Woytek950
Witam. mam zamiar napisać skrypt losowania codziennie tzw. sczęśliwego numerka.
Skrypt ma spełniać kryteria:
nie losować 0 i liczb większych niż 32(proste rozwiązanie)
nie losować w dni świąteczne i weekendy
nie może się powtórzyć mniej niż co 32 dni(chyba dobrze napisałem)
i jak coś wymyśle to dodam.
Chciałem sprawę załatwić tak: funkcja losująca następnie warunek jeżeli nie jest zerem potem sprawdzić czy date() jest równe rekordowi (będzie tabela z dniami do losowania czyli np. 23.12.2012), jeżeli jest, to sprawdza warunek czy mineło 32 dni od poprzedniego klosowania.
Jest jedno ale! co z rokiem przestępnym ? wiem że to tylko mały prosty skrypt ale chciał bym aby był bardzo funkcjonalny i w 100% poprawny.
Proszę o propozycje, opinie na temat ów skryptu.

może to wam coś pomoże:
  1. if (currYear % 4 == 0 && currYear % 100 != 0 ||
  2. currYear % 400 == 0)
  3. february = 29;
  4. else
  5. february = 28;
zordon
trochę za bardzo kombinujesz.

  1. $new = mktime(0, 0, 0, date("m"), date("d") - 32, date("Y"));
  2. echo date('Y-m-d', $new);


ten kod wyświetli Ci poprawną datę - z uwzględnieniem lat przestępnych, 32 dni wstecz od bieżącej

  1. echo date('w');
- ten z kolei pozwoli w ustaleniu, czy masz weekend:
Kod
w    Numeric representation of the day of the week    0 (for Sunday) through 6 (for Saturday)


Problemem mogłyby być jedynie święta "ruchome" ale na necie są algorytmy jak je wyliczyć. W najłatwiejszym wariancie wystarczy zdefiniować je ręcznie

dodatkowo zmień trochę kolejność -> najpierw sprawdzaj, czy możesz losować, a dopiero później losuj. Jeśli wyniki i tak odrzucisz to po co tracić zasoby?
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.