Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Skrypt sczęśliwego numerka- proste
Woytek950
post 24.11.2010, 15:21:22
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 2
Dołączył: 6.06.2008
Skąd: jesteś ?

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


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;


Ten post edytował Woytek950 24.11.2010, 15:39:29
Go to the top of the page
+Quote Post
zordon
post 24.11.2010, 16:51:28
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


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?

Ten post edytował zordon 24.11.2010, 16:55:12
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: 12.07.2025 - 16:45