LPhard spol. s r. o.

Problém Y2K
Publikováno: Thursday, 22.07. 1999 - 12:00:00
Téma: Y2K


Přechod na rok 2000 je reálným blížícím se problémem, který může ohrozit řadu lidských činností. Jedním z jeho velkých problémem je, že ohrozí i systémy, které roky pracují rutinně. V dnešní době už není mnohdy ani známo do detailů jak jsou některé systémy vytvořeny a jak jejich jednotlivé části mezi sebou spolupracují. Tento problém však není jen problémem daným datem 1. ledna 2000, ale aby to nebylo jednoduché, těchto problematických dat je více a navíc k tomuto problému přistupují i další problémy.

Některé z nich se pokusím nastínit v následujících bodech.

A) Problém s dvojciferným zadáním letopočtu

Nezadávání letopočtu v plném rozsahu, tedy včetně století, souvisí se počátky výpočetní techniky a s lidskou leností. V počátcích éry počítačů byla jak operační paměť, tak i další druhy paměťových médií drahé, a tak redukce data o jeden až dva bajty byla cítit i finančně. Dnes tyto úspory, vzhledem k rozsahu databází a ceně médií nejsou tak podstatné. Nicméně tato úspora má i lidský faktor, kolikrát raději napíšete 21. 7. 99 než 21. července 1999. Tento problém se zhruba odrazí v následujících chybách:

1) V mnoha systémech nepůjde zadat rok 2000 a vyšší. Autor pevně přidává před zadávané datum 19 a uživatel je bezmocný. Popř. v některých systémech je rok 00 chybný a nejde zadat vůbec.
2) Nelze určit zda jsou data z roku 19xx, či 20xx, či dokonce 18xx. Zařazení roku je mnohdy možné jen podle kontextu, který však nemusí program znát. (Tento problém nastane v krátké době i s rodnými čísly, pokud nedojde k reformě, doposud byla starší rodná čísla za lomítkem třímístná,...)
3) Špatné třídění. Na přelomu století budou "aktuální" data jak z roků 19xx tak 20xx, nicméně jak je seřadit za sebou? 00, 01, ..., 98, 99? 80, 81, ..., 98, 99, 00, 01, ..., 78, 79 ? Co je správně ?
4) Špatné porovnání a výpočty s datem. Tento bod je více méně variantou bodu 3). Tento bod se nejvíce projeví např. u datových archívů, kdy data z roku 1999 budou drženy jako nejaktuálnější a ty z roku 2000 budou o 99 let "starší" a tudíž nepotřebná. Nebo si ve svém oblíbeném textovém editoru dáte vyhledat dokumenty z minulého týdne a zhrozíte se, dokumenty nikde. Jsou totiž napsány v roce 1999 a vy si myslíte že dnes je rok 2000, nemyslí si to ovšem Váš program, ten trvá na roku 1900.

Některé systémy, a to i novější tento problém obcházejí zhruba tak jak bylo naznačeno v bodě 3), datum menší než daná hodnota je bráno jako by bylo 20xx, vyšší jako 19xx. Např. i Windows98 zatím tento problém takto řeší, zlomovým datem je u nich rok 2029/1930. (U autora tohoto článku je takovýmto rokem rok 2079/1980, nicméně tuto reprezentaci používá v implementaci takových zařízení jako jsou jednoúčelové řídicí systémy, které v roce 2080 budou maximálně vystavovány v muzeu).

B) Špatné výpočty počtu dní v měsíci a dne v týdnu

Špatný výpočet počtu dní a dne v týdnu souvisí především s problémy nastíněnými v předchozím odstavci a to především se špatným určením století (např. 1. ledna roku 2000 bude sobota, 1. ledna roku 1900 bylo ale pondělí, v obou případech je ale rok ve dvojciferném vyjádření stejný 00). Další problém souvisí s určením přestupného roku. Rok 2000 je rokem přestupným.
Dle papežské buly z roku 1582 je přestupný rok dán těmito pravidly:
a) je-li rok dělitelný 4 je rok přestupný
b) je-li rok dělitelný 100 je rok nepřestupný
c) je-li rok dělitelný 400 je rok přestupný
Některé programy nerespektují všechna tato pravidla, resp. používají pro vyjádření roku pouze dvě cifry a rok 00 berou jako nepřestupný. Toto nerespektování všech tří pravidel přestupnosti vede k následujícím chybám:

1) Nelze zadat 29. února 2000 jako platné datum.
2) Po 28. únoru 2000 následuje 1. března 2000
3) Určení dne v týdny po 28. únoru 2000 je posunuto o jeden den
4) V počtu dní roku 2000 rovněž chybí 29. únor 2000, rok má 365 dní místo správných 366

C) Problémy s "magickými" daty

Problém "magických" čísel se táhne už z počátků výpočetní techniky, např. v šedesátých letech se pro vyjádření roku používala pouze jedna číslice a obdobný problém, který zažíváme se stoletím se řešil okolo roku 68, kdy se řešilo co s rokem 1970. Jedním z těchto historických "zlozvyků" je i použití některých dat pro speciální účely. Např. datum 9.9.1999 používané v některých databázích jako datum pro data "věčně zelená" jejichž platnost nemá nikdy vypršet.







Tento článek si můžete přečíst na webu LPhard spol. s r. o.
https://www.lphard.cz

Tento článek najdete na adrese:
https://www.lphard.cz/modules.php?name=News&file=article&sid=3