Jak na datum a čas nejenom v ASP – převody
Dnes nás čeká zakončení miniseriálu o práci s datem a časem pomocí ASP. Ukážeme si převod času, formát datumu a nakonec vám předvedu jednoduché stopky na počítači.
Funkce TimeSerial a DateSerial
Funkce TimeSerial „poskládá“ ze zadaných hodin, minut a sekund čas, který vrátí jako proměnnou typu Time:
|
Funkce DateSerial „poskládá“ ze zadaného dne, měsíce a roku datum, které je vráceno jako proměnná typu Date:
|
Zajímavou vlastností funkci DateSerial a TimeSerial je fakt, že kromě roku mohou být ostatní parametry mimo rozsah daný logikou časových a datumových údajů.
Díky tomu můžeme třebas jako měsíc zadat číslo 25. Funkce DateSerial se pak zachová tak, že k zadanému roku přičte zadaný počet měsíců.
Funkce DateSerial bez problémů pracuje s přestupnými roky. Při zadaní Dateserial(2000,2,29) obdržíme správně únorové datum, neboť rok 2000 je rokem přestupným.
Při zadaní Dateserial (2001,2,29) obdržíme správně březnové datum, neboť rok 2001 rokem přestupným není a systém ví, že únor 2001 má 28 dní a ne 29, jak se mu snažíme vnutit. Této vlastnosti můžeme použít ve funkci pro zjištování, zda-li je rok přestupný či nikoliv.
Příklad 1:
|
Pro úplnost uvedu ještě funkci, která testuje přestupný rok metodou, kterou jistě používá většina z vás.
Příklad 2:
|
V příkladu číslo 3 jsou uvedeny volání funkcí z příkladu číslo 1 a 2. Test 1 je prováděn funkcí z příkladu číslo 1 a Test 2 je prováděn funkcí z příkladu číslo 2.
Příklad 3:
|
Funkce Cdate
Funkce Cdate převádí proměnnou na typ Date
|
V příkladu 4 si všimněte, že je zcela jedno, zda převádím na datum 13.12.1999 či 12.13.1999 nebo 1999.12.13. Funkce vždy rozpozná, že se jedná o jiný způsob zadání téhož data a to sice 13. prosince 1999.
Příklad 4:
|
TimeValue a DateValue
Funkce TimeValue přebírá jako parametr řetězec, který představuje čas a tento řetězec převádí na proměnnou typu Time.
|
Funkce DateValue přebírá jako parametr řetězec, který představuje datum a tento řetězec převádí na proměnnou typu Date:
|
Předávaný řetězec musí být, naprosto správný (tj.měsíc nesmí mít více dnů apod.). Jak byste dopadli při pokusu o převod řetězce 29 02 2001 13:51:16 na čas, vidíte v příkladu 5. Obdobný výsledek byste dostali při převodu na datum.
Příklad 5:
|
Funkce IsDate
Funkce IsDate zkontroluje, zda-li předávaný parametr je datum či čas nebo zda-li se dá na datum či čas převést. V kladném případě vrací True, v opačném případě False.
|
V příkladu 6 vidíte testování různých řetězců na to, zda-li obsahují údaje typu date.
Příklad 6:
|
Funkce FormatDateTime
Funkce FormatDateTime formátuje předaný datumový výraz podle druhého parametru
|
Příklad 7:
|
Funkce Timer
Na závěr tohoto článku mám pro vás funkci, která vrací počet sekund od půlnoci s přesností na setinu sekundy. Ptáte se, k čemu je takováto funkce dobrá? Například můžete zjistit, jak dlouho trvalo provedení vašeho ASP. Jak na to, to si ukážeme v dalším příkladu. Nejdříve potřebujeme proměnnou, do které se bude ukládat čas startu timeru.
|
Protože při ladění programu potřebujeme většinou měřit časové úseky v různých částech kódu, definujeme si hned pole o velikosti 20. Můžeme tak měřit až 20 různých časových úseků.
Dále potřebujeme mechanismus, kterým si naše stopky pustíme.
|
Vytvoříme si dále proceduru, která jako parametr přijme pořadové číslo stopek a stopky pustí. Ve skutečnosti udělá to, že do příslušného prvku pole zapíše počet vteřin od půlnoci. Stopky nám už běží, ale ještě nemáme možnost, jak je zastavit. Proto si snadno vytvoříme funkci, která to dokáže.
|
Jak jsem již řekl, funkce vrací počet sekund od půlnoci. Co když, ale začneme měřit před půlnocí a skončíme s měřením po půlnoci. Tento nedostatek odstraníme tak, že doplníme funkci o test, která ověří, zda-li koncový čas není menší než počáteční a v kladném případě si přičteme ke konečnému času 86400 sekund, což je vlastně celý den.
|
Stopky máme hotové a můžeme je začít používat. Spustíme je pomocí
|
a zastavíme a zobrazíme pomocí
|
Nakonec ještě uvedu omezení těchto „stopek“- nelze změřit časové úseky kratší než 0.01 sekundy a delší jak 24 hodin.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Monitory OLED: klíčové pojmy a funkce
13. května 2024 -
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Certifikáty Entrust ztratí důvěru Google Chrome
8. července 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024