Autor Zpráva
Tomik
Profil
Mám takový menší problém:
*************************
Znám měsíc (který je v proměnné $month) a rok ($year) a potřebuji zjistit počet dní v tomto měsíci.

Pouzívám fci date a mktime a pomocí intervalu jednoduše zjistím počet dní:

$celkem_dni = date('t', mktime(0,0,0, $month, 1, $year));


Tento postup nemá skoro žádnou chybu, pouze jednu a to dost zásadní. Fce MKTIME bere roky pouze v rozmezí od 1971 do 2038, zatím je vše ok, ale jelikož píšu jeden systém na rezervaci pokojů pro jeden hotel (který bude fungovat, doufám, i po roce 2038), tak bych rád zajistil nějaký postup, který by mě takto neomezoval. Tj. aby šel zadat rok větší než 2038.

Jinak více o fci MKTIME - na PHP.NET.
---
Takže, neznáte někdo, pls, nějaký lepší způsob?

Díky moc Tomik
Martin Kuželka
Profil
Nic ve zlém, ale opravdu si myslíš, že budou tvůj systém používat tak dlouho?
Tomik
Profil
:) Asi ne, to je pravda. Ale zase jetsli jo, tak mám dost času vymyslet lepší řešení :).
Tomik
Profil
Samorřejmě, že to není takový problém, prostě jim řeknu, že jestli ten systém budou chtít používat dál, tak že přijedu a za nějaký peníz to spravim (a do tý doby snad něco vymyslim). :)

Mě jde jen o to, že to je celkem zajímavý problém, nebo ne?
printf
Profil *
Já bych se s tím tolik netrápil. Počet dnů v měsíci je snad v každém roce, kromě přestupního, stejný, ne? Je na to pomůcka pro děti, podle kloubů prstů. Nebál bych se to jednoduše skladovat v nějakém poli. Navíc to bude rychlejší než to počítat. Přestupní rok je snad každý čtvrtý, takže by se to dalo zjistit přes zbytek po celočíselném dělení "%".
llook
Profil
Jde o problém Y2K38. Podobně jako se Y2K samo vyřešilo tím, že v době kdy mělo propuknout už skoro nikde nebyl rok zapsaný dvěmi číslicemi, předpokládám, že tento problém se vyřeší sám podobně - postupným přechodem na 64-bitové architektury.

Do 32 bitového slova se prostě nevejde víc sekund než těch 68 let a pár týdnů.
Tomik
Profil
To llook: Taky předpokládám, že to soudruzi z PHP začnou někdy (až to bude aktuální) řešit, nemyslím si, že by nechali tu funkci zazdít.

To printf: No asi nějak tak to budu muset řešit, díky.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0