Úloha 3 – Použití objektů Date a Math v praxi

Úvod do úlohy

Po zvládnutí základních funkcí, které pracují s čísly a texty, se studenti seznámí s dvojicí velmi důležitých vestavěných objektů – Math a Date. Tyto objekty patří k nejčastěji používaným v JavaScriptu, protože umožňují provádět výpočty, generovat náhodná čísla, získávat aktuální datum a čas nebo s nimi dále programově pracovat.

Díky nim dokáže JavaScript snadno zpracovávat různé matematické a časové operace, aniž by programátor musel psát vlastní složité algoritmy. Oba objekty jsou přístupné automaticky – není potřeba je nijak importovat ani vytvářet zvláštním způsobem.


Objekt Math – matematické operace a konstanty

Objekt Math obsahuje mnoho užitečných funkcí a konstant pro běžné i pokročilejší výpočty. Používá se pro zaokrouhlování, výpočty s mocninami, odmocninami, hodnotami sinusů či kosinů, a také pro generování náhodných čísel.

Na rozdíl od jiných objektů se Math nevytváří pomocí new – prostě se použije přímo:

Přehled nejpoužívanějších metod

Metoda Popis Příklad Výsledek
Math.round(x) Zaokrouhlí číslo na nejbližší celé číslo Math.round(4.6) 5
Math.floor(x) Zaokrouhlí dolů Math.floor(4.9) 4
Math.ceil(x) Zaokrouhlí nahoru Math.ceil(4.1) 5
Math.abs(x) Vrátí absolutní hodnotu čísla Math.abs(-7) 7
Math.pow(a, b) Umocní číslo a na exponent b Math.pow(2, 3) 8
Math.sqrt(x) Vrátí druhou odmocninu Math.sqrt(16) 4
Math.max(a, b, …) Vrátí největší číslo z výčtu Math.max(4, 8, 2) 8
Math.min(a, b, …) Vrátí nejmenší číslo z výčtu Math.min(4, 8, 2) 2
Math.random() Vrátí náhodné číslo mezi 0 (včetně) a 1 (ne včetně) Math.random() např. 0.37

Příklad: Generování náhodného čísla a jeho zaokrouhlení

Zde vidíme kombinaci dvou metod:

  • Math.random() – vytvoří náhodné desetinné číslo,

  • Math.floor() – převede ho na celé číslo dolů, přičtením +1 zajistíme rozsah od 1.


Příklad: Porovnání a zaokrouhlování hodnot


Typické chyby u objektu Math

  1. Chybějící závorky při volání metody
    – Např. Math.random bez závorek pouze odkazuje na funkci, ale nespustí ji.

  2. Zapomenuté zaokrouhlení při generování celých čísel
    – Math.random() vrací desetinné číslo, které je nutné upravit kombinací s Math.floor() nebo Math.round().

  3. Nesprávné pořadí operací
    – Pokud chceme náhodné číslo v rozsahu 1–10, musíme psát Math.floor(Math.random() * 10) + 1, nikoli naopak.


Objekt Date – práce s časem a datem

Objekt Date se používá k získávání a zpracování informací o čase a datu. Lze s ním číst aktuální datum, zjišťovat konkrétní části (den, měsíc, rok, hodinu), ale i porovnávat časy nebo měřit délku trvání událostí.

Vytvoření objektu probíhá pomocí konstruktoru:

Tento objekt obsahuje aktuální systémové datum a čas.


Získávání částí datumu

Metoda Popis Příklad Výsledek (např.)
getFullYear() Rok ted.getFullYear() 2025
getMonth() Měsíc (0–11) ted.getMonth() 9 (říjen)
getDate() Den v měsíci (1–31) ted.getDate() 7
getDay() Den v týdnu (0–6, neděle = 0) ted.getDay() 2
getHours() Hodina ted.getHours() 14
getMinutes() Minuta ted.getMinutes() 30
getSeconds() Sekunda ted.getSeconds() 5

Příklad: Zobrazení aktuálního data


Příklad: Měření času mezi dvěma událostmi

Tento příklad ukazuje, že objekt Date lze použít nejen pro zobrazení, ale i pro měření časových intervalů.


Typické chyby u objektu Date

  1. Záměna indexu měsíce
    – Měsíce se počítají od nuly (0 = leden, 11 = prosinec), proto je často nutné přičíst +1.

  2. Chybné formátování výstupu
    – Metody vracejí čísla, která je třeba převést na text, doplnit nulami nebo znaky (např. 07.10.2025).

  3. Zapomenutý rozdíl mezi getDate() a getDay()
    – getDate() vrací den v měsíci, zatímco getDay() den v týdnu.


Shrnutí

  • Objekt Math slouží k matematickým operacím, zaokrouhlování a generování náhodných čísel.

  • Objekt Date poskytuje informace o aktuálním čase, umožňuje měřit délku událostí a vytvářet formátovaný výstup datumu.

  • Oba objekty jsou součástí základní výbavy JavaScriptu a není třeba je importovat ani vytvářet ručně.

  • Umět je používat znamená umět psát efektivní, přehledný a univerzální kód, který zvládá výpočty i práci s časem bez zbytečných komplikací.