Ca sa ma obisnuiesc si eu putin cu PHP-ul, am lucrat in ultimele zile la o sectiune care uneori poate va fi utila, este vorba de Pontes Calendar.
Se poate ajunge oricand direct la aceasta sectiune, accesand adresa www.calendar.pontes.ro.
Sunt in total trei sectiuni precedate de headinguri, deci la care se ajunge repede cu tasta "h":
Data curenta
Aici apare doar ziua saptamanii si data in care ne aflam.
Informatii despre o anume data
Aici apar trei combo-boxuri in care se poate alege orice data a oricarui an intre 1902 si 2038.
Implicit este setata data curenta, data pentru care deja apar cateva informatii intr-o lista aflata sub combo-boxuri, deci se ajunge direct la informatii despre ziua de azi prin apasarea tastei "l".
Aici sunt informatii precum: in a cata zi din an suntem, a cata saptamana, sub ce zodie, cand rasare si apune soarele etc.
Daca se alege o alta data din combo-ul de mai sus, vor mai aparea in plus si alte informatii, precum: cate zile mai sunt sau cate au trecut pana, respectiv de la data curenta, care este data pe stil vechi (Calendar Iulian).
Informatii despre un anume an
A treia subsectiune a Pontes Calendar este cea cu informatii despre un anume an. Aici este un edit unde implicit este scris anul curent, dar se poate scrie oricare altul intre 1902 si 2038.
Sub apare o alta lista, a doua de pe pagina, deci se ajunge apasand de doua ori "l" cand ne gasim dupa reincarcarea paginii undeva mai sus.
Aici apare daca anul anume este sau nu bisect, cand pica Pastele Ortodox si cel Catolic.
Probabil ca imi mai vin niste idei si mai pun cate ceva legat de date si ore.
Era cat pe aici sa nu am data Pastelui Ortodox, functia implicita din PHP easter() o calculeaza doar pe cea dupa calendar Gregorian.
Ca o curiozitate, pun algoritmul de calcul al datei zilei de Paste, astfel se poate gasi chiar din cap oricand, si ar merge ca aplicatie pe la scoala cu elevii pasionati de probleme de acest fel.
Citat de pe Forumul Softpedia:
Formula finala este 4 aprilie + D zile + E zile.
Astfel puteti sa calculati singuri cand cade Pastele in orice an.
I. Cum il aflam pe D
1. se imparte anul respectiv la 19;
2. restul impartirii se inmulteste tot cu 19;
3. la acest produs se adauga un factor fix, 15;
4. suma obtinuta se imparte la 30 iar restul impartirii este D.
II. Cum il aflam pe E
1. se imparte anul cu 4 iar restul se inmulteste cu 2;
2. se imparte anul cu 7 iar restul se inmulteste cu 4;
3. se aduna resturile acestor doua impartiri marite prin inmultirile mentionate;
4. la aceasta suma se adauga de 6 ori valoarea lui D si la produs se adauga o valoare fixa, 6;
5. suma totala se imparte cu 7 iar restul va fi tocmai E.
Sfarsit citat de pe Forumul Softpedia
Data de start este 4 aprilie pentru ca, dupa Calendarul Iulian, echinoctiul de primavara este 21 martie plus 13 zile, 3 aprilie, adica mai tarziu cu 13 zile decat cel dupa Calendarul Gregorian pe care il folosim in toate acum in latura noastra laica.
Algoritmul de mai sus cauta prima duminica dupa prima zi cu luna plina dupa echinoctiul de primavara, aceasta zi nu are voie sa fie chiar ziua echinoctiului, sunt niste reglementari de pe la concilii.
Interesant ca anul acesta, 2010, si urmatorul, 2011, se nimereste pe ambele calendare aceeasi data, iar in 2013 va fi o diferenta mare, catolic pe 31 martie, ortodox pe 5 mai.
De ce se pot in sistemul de pe site calcula doar informatii pentru date si ani dintre 1902 si 2038?
Limbajul de programare PHP este executat pe server Linux care se bazeaza pentru tot ce tine de timp pe timestamp Unix, timpul Unix.
Pe scurt, data Unix este numarul de secunde scurs de la Epoca Unix, adica 1 ianuarie 1970, ora 00:00.
Tot ce este inainte de aceasta data este cu minus, deci numarul de secunde precedat de minus.
Un Signed 32-bit Integer poate tine un numar pana la 2187483647, atat cu plus, cat si cu minus.
Daca luam acest numar ca numar de secunde scurs de la 1 ianuarie 1970 ora 00, se va ajunge la data de marti, 19 ianuarie 2038, ora 03:14:07. Mai mult de atat nu se poate pe un sistem pe 32 de biti.
Deci, aproximativ 68 de ani de la Epoca Unix.
Daca ne gandim ca se poate si cu minus, inseamna ca se poate merge inaintea Epocii Unix pana prin 1902.
www.calendar.pontes.ro
Pontes Calendar, o sectiune a site-ului
Moderator: Manu
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Pontes Calendar, o sectiune a site-ului
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
- Manu
- General de divizie
- Mesaje: 4120
- Membru din: 02 Feb 2007, 01:15
- Localitate: Cluj-Napoca
- Contact:
Daca tot sunt intr-o perioada in care ma mai joc cu JavaScript, am completat sectiunea www.calendar.pontes.ro cu un mic amanunt, asa pentru exercitiu.
La prima subsectiune din cele trei, cea despre data si ora curenta, am introdus si un mic ceas local, care se schimba in timp real si un buton care afiseaza un mesaj in care se spune daca e reglata bine ora in calculator / telefon. Va spune cu cate minute este in urma sau inainte ceasul daca e cazul, iar daca dereglajul este mai mic de 45 de secunde va spune ca ora e setata bine, fiind detectata doar o diferenta de x secunde. Cand ceasul merge plus minus o secunda sau doua se spune ca ceasul merge la secunda.
La prima subsectiune din cele trei, cea despre data si ora curenta, am introdus si un mic ceas local, care se schimba in timp real si un buton care afiseaza un mesaj in care se spune daca e reglata bine ora in calculator / telefon. Va spune cu cate minute este in urma sau inainte ceasul daca e cazul, iar daca dereglajul este mai mic de 45 de secunde va spune ca ora e setata bine, fiind detectata doar o diferenta de x secunde. Cand ceasul merge plus minus o secunda sau doua se spune ca ceasul merge la secunda.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
In forum linguae Latinae venite! (via est: www.limbalatina.ro)