Internetový čas prostřednictvím mobilu v ASP.NET
ASP.NET usnadňují tvorbu mobilních aplikací prostřednictvím tříd z prostoru System.Web.UI.MobileControls. V tomto článku si ukážeme velmi jednoduchou aplikaci, která bude automaticky funkční jak v běžném prohlížeči na PC, tak v mobilním telefonu prostřednictvím protokolu WAP.
Na rozdíl od suchého „Hello World“ jsem pro příklad zvolil zajímavou, přímo revoluční myšlenku firmy Swatch, která prosazuje používání takzvaného internetového času. Ve stručnosti jde o to, že tento čas je na celém světě stejný. Je nezávislý na časových pásmech a je odvozen od tzv. Biel Mean Time (BMT), což je zimní středoevropský čas – tedy UTC + 1 hodina. Čas celého dne je rozdělen na 1 000 dílů, jeden díl tak odpovídá 2,64s. Například 13:00 letního času v Praze odpovídá hodnotě @500 internetového času. Protože nejsou reflektována časová pásma, důležitou součástí je také údaj o datu (dni), celý údaj o času tedy může vypadat například takto: @678 @d03.07.03.
Připravenou ukázku si můžete prohlédnout jak v prohlížeči, tak třeba mobilním telefonem (do prohlížeče v telefonu je třeba přepsat úplnou adresu ukázky). Také si můžete stáhnout soubory ukázky.
V naší aplikaci tedy zjistíme čas UTC prostřednictvím statické vlastnosti UtcNow třídy DateTime, metodou AddHours() k němu přidáme jednu hodinu a matematickou trojčlenkou vypočítáme z aktuálního počtu sekund a počtu sekund celého dne (24*60*60) internetový čas. Nakonec ještě zformátujeme řetězec, obsahující datum dne pro zobrazení ve tvaru internetového času, a obojí můžeme zobrazit.
Výpočet internetového času a jeho zobrazení doprogramujeme do „kostry“ mobilní stránky NetTime.aspx:
<%@ Page Language=“C#“ EnableViewState=“False“ EnableSessionState=“False“ Inherits=“System.Web.UI.MobileControls.MobilePage“ %>
<%@ Register TagPrefix=“Mobile“ Namespace=“System.Web.UI.MobileControls“ Assembly=“System.Web.Mobile“ %>
<script RunAt=“server“>
void Page_Load (Object sender, EventArgs e)
{
DateTime BMT = DateTime.UtcNow.AddHours(1);
int NetTime = (1000*(BMT.Second + (BMT.Minute*60) + (BMT.Hour*3600)))/86400;
LblNetTime.Text = „@“ + NetTime.ToString();
LblNetDate.Text = „@d“ + BMT.ToString(„dd.MM.yy“);
}
</script>
<Mobile:Form Id=“FrmTime“ EnableViewState=“false“ RunAt=“server“>
<Mobile:Label Text=“Internet Time“ RunAt=“server“ />
<Mobile:Label Id=“LblNetTime“ RunAt=“server“ />
<Mobile:Label Id=“LblNetDate“ RunAt=“server“ />
</Mobile:Form>
Klasickou ASP.NET stránku nám zde rozšiřuje System.Web.UI.MobileControls.MobilePage z prostoru názvů System.Web.UI.MobileControls, dále je zde zaregistrována Assembly System.Web.Mobile, díky které můžeme ve stránce využívat prvky pro mobilní zařízení.
Základním prvkem mobilní stránky je formulář – na rozdíl od běžné ASP.NET stránky jich může být ve stránce více a musí v ní být alespoň jeden. Do tohoto formuláře pak vkládáme další prvky (musejí být ve formuláři, nemohou být „volně loženy“) – labely, delší stránkovatelné texty, editační textová pole, odkazy, obrázky nebo třeba zvláštní povely pro vytáčení telefonního čísla. Obsahem formuláře může být běžný text, případně i omezená sada tagů – .NET Framework je pak při renderování přizpůsobuje dle zařízení na HTML, HDML nebo WML syntaxi.
Ve formuláři naší mobilní aplikace máme pouze dva labely, jeden pro zobrazení samotného internetového času a druhý pro zobrazení data internetového času. Obvyklým způsobem v obsluze události Page_Load jim potom nastavíme vlastnost Text a mobilní aplikace ukazující internetový čas je na světě. Díky ní si pak můžete bez obav sjednat schůzku třeba na @765 v New Yorku, aniž byste museli vlastnit speciální hodinky již zmíněné firmy.
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
-
Lék na phishing a apatii ve světě e-mailového marketingu
18. března 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