jak przeliczyc biorytm dowolnego dnia, PHP Skrypty


[PHP] Jak policzyć biorytmy dla dowolnego dnia?

0x01 graphic

Chcesz obliczyć biorytm emocjonalny, fizyczny i psychiczny dla określonego dnia, tak jak wyliczony poniżej biorytm dla mnie (na dzisiaj):

Żyję 10994 dni
Dzień cyklu intelektualnego: 6, biorytm intelektualny: 81
Dzień cyklu emocjonalnego: 19, biorytm emocjonalny: -78
Dzień cyklu fizycznego: 1, biorytm fizyczny: 0

0x01 graphic

Biorytmy to wyliczone przez naukowców cykle największej aktywności fizycznej, intelektualnej i emocjonalnej człowieka, które powtarzają się co określoną liczbę dni. Na przestrzeni tego czasu aktywność określonego biorytmu wzrasta i maleje, poruszając się pomiędzy maksymalną (100%) i minimalną wartością (-100%) niczym sinusioda.

Zwykle dla uproszczenia przyjmuje się zakres wartości biorytmu od 100 do -100, gdzie 0 jest stanem neutralnym - aktywność nie jest ani podwyższona ani osłabiona. Wartość 100 oznacza maksymalną aktywność dla danego cyklu, a -100 to najgorszy dzień dla cyklu np. fizycznego i teoretycznie lepiej nie brać się wtedy za uprawianie sportu.

Biorytm zaczyna "pracować" od chwili narodzin - tak mówią naukowcy, a więc znając długości cyklu dla każdego biorytmu można wyznaczyć go dla dowolnego dnia, jeżeli znasz datę swoich urodzin (znasz, prawda?).

Możesz więc nie tylko obliczyć, jakie wartości biorytmów występują dzisiaj, ale też jakie będą za tydzień, jakie były wczoraj czy jakie będą w chwili wyjazdu na upragniony urlop.

Osobiście nie wierzę w biorytmy, bo moim zdaniem nie cyferki świadczą o samopoczuciu i możliwościach tkwiących w człowieku, ale jeżeli lubisz takie historie (lub użytkownicy Twojego serwisu je lubią) to biorytm będzie wyśmienitym urozmaiceniem nudnej czasem rzeczywistości. Zobacz jak go wyliczyć:

<?

// urodziny

$dzien=7;

$miesiac=4;

$rok=1974;

$teraz=gmmktime(); // liczymy biorytm dla dnia dzisiejszego

$urodziny=gmmktime(12,00,00,$miesiac,$dzien,$rok);

$dni = (int)(($teraz-$urodziny)/60/60/24);

function biorytm($cykl, $dzien) {

return (int)(sin($dzien%$cykl/$cykl*2*M_PI)*100);

}

echo "<br>Żyjesz już $dni dni";

echo "<br>Dzień cyklu intelektualnego: ".($dni%33+1);

echo ", biorytm intelektualny: ".biorytm(33,$dni);

echo "<br>Dzień cyklu emocjonalnego: ".($dni%28+1);

echo ", biorytm emocjonalny: ".biorytm(28,$dni);

echo "<br>Dzień cyklu fizycznego: ".($dni%23+1);

echo ", biorytm fizyczny: ".biorytm(23,$dni);

?>

Każdy biorytm ma swój cykl. Trwa on 33 dni dla biorytmu intelektualonego, 28 dla emocjonalnego i 23 dni dla fizycznego. Aby wyznaczyć biorytm na określony dzień najlepiej policzyć ile dni minęło od chwili narodzin do dnia, dla którego chcesz obliczyć biorytm.

Odejmując od chwili obecnej (gmmktime()) datę urodzin i dzieląc tą wartość przez liczbę sekund, minut i godzin otrzymam liczbę dni, jakie minęły od moich urodzin. Liczbę tą przechowuję w zmiennej $dni.

Przyda się pomocnicza funkcja biorytm(), która na podstawie dni i długości cyklu wyliczy wartość biorytmu dla podanego dnia. Obliczanie biorytmu to nic innego, jak odwzorowanie pozycji cyklu na sinusoidzie w określonym dniu. Wystarczy więc podstawić do sinusa dni z aktualnego cyklu (dzielenie modulo), podzielić przez długość cyklu i pomnożyć przez 2PI.

Ponieważ sinus daje wartości z zakresu od -1 do 1 mnożę wynik przez 100 aby otrzymać zakres od -100 do 100. Teraz podstawiając liczby mogę wyliczyć wartości biorytmów dla dowolnego cyklu.

Dodatkowo obliczam dzień cyklu, czyli dzielę dzień przez cykl (dzielenie modulo) i do reszty dodaję jeden dzień (wynik modulo podaje wartości od 0). I gotowe, mamy biorytmy wyliczone.

Jeżeli odejmiesz od zmiennej $dni 1 dzień, otrzymasz wynik dla wczorajszego dnia, jeżeli dodasz 7 dni, zobaczysz w jakim stanie będziesz za tydzień.

Ponieważ możesz obliczyć w ten sposób wartości biorytmów dla dowolnego dnia, możesz rysować wykresy, a więc linie łączące punkty dla określonego przedziału czasu.

Możesz sobie też wyliczyć np. średnią z trzech biorytmów:

<?

echo "<br>Średnia biorytmów: ";

echo (int)((biorytm(33,$dni)+biorytm(28,$dni)+biorytm(23,$dni))/3);

?>



Wyszukiwarka

Podobne podstrony:
jak wyliczyc kiedy nastapi wschod i zachod slonca dla dowolnego dnia, PHP Skrypty
jak samodzielnie obliczyc numer dnia w dowolnym roku, PHP Skrypty
Jak wysłać ze strony WWW e-mail z dowolnym załącznikiem, PHP Skrypty
Jak wypisać na ekranie w PHP zawartość dowolnej tabeli, PHP Skrypty
jak logowac unikatowe numery IP uzytkownikow z calego dnia, PHP Skrypty
Jak wysłać ze strony WWW e-mail z dowolnym załącznikiem, PHP Skrypty
Jak przerwać wykonywanie pętli (for, PHP Skrypty
Jak usunąć znaki końca linii, PHP Skrypty
Jak wygenerować niepowtarzalny identyfikator użytkownika, PHP Skrypty
Jak stworzyć prostą księgę gości, PHP Skrypty
Jak zamienić tekst na grafikę, PHP Skrypty
Jak dołączyć do stron napisanych w PHP skrypty CGI napisane np. w PERLu, PHP Skrypty
Jak zainstalować popularne forum phpBB, PHP Skrypty
Jak przerwać wykonywanie pętli (for, PHP Skrypty
Jak zapisać i potem odczytać grafikę lub dowolny plik w bazie danych, PHP Skrypty
Jak stworzyć na stronie kalendarzyk z dniami miesiąca na dowolny rok i miesiąc, PHP Skrypty
jak zapisac i potem odczytac grafikę lub dowolny plik w bazie danych, PHP Skrypty
Jak stworzyć prostą wyszukiwarkę dla własnych stron WWW, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty

więcej podobnych podstron