Kis csodák c #

Én továbbra is lefordítani „Kis csodák.”. Miután egy sikeres trilógia - sorozat. Eredeti cikk.

Ismét hadd belevetik magukat a „Little .NET csodák” - ezeket a kis „dolgokat” a nyelv a .NET Framework osztályok és a BCL, amelyek fejlesztési könnyebb olvashatóság javítása révén, a karbantarthatóság és a teljesítményt.

Ma fogok összpontosítani System.DateTime. Ez a kis szerkezet volt a BCL kezdettől fogva, széles körben használják, hogy képviselje az esetekben a dátumot és az időt. A sok gyönyörű tulajdonságait, módszerek, és a piaci szereplők, akik nem olyan széles körben ismert, de tudnak adni számos előnnyel jár.

Csak egy gyors megjegyzés a alapértelmezett konstruktor

Az egyik első jellemzője, hogy észre az átmenetet c Java C #, hogy az alapértelmezett konstruktor DateTime nem adja vissza az aktuális idő, és a minimum.

Miért történik ez? Miért nem adja vissza az aktuális dátum és idő? A lényeg itt az, hogy a szerkezet DateTime. A szerkezet már döntött a teljesítmény miatt, hogy a másolatok datetime nagyon könnyű, de az egyik a sok következménye az, hogy nem lehet meghatározni a szerkezet viselkedését, az alapértelmezett konstruktor. alapértelmezett konstruktor szerkezet mindig elindítja az összes területen az aktuális értékek (nullát a numerikus típusok, null referencia típusok, stb.)

Mivel a jelenlegi értékek minden szerkezet mezők az alapértelmezett értékeket, így használja létrehozásakor DateTime alapértelmezett konstruktor ad egy eset, ahol az érték dateData nulla. Ez azt jelenti, hogy a ciklusok számát (alsó 62 bit) értéke nulla, és a típus (felső 2 bit) is nulla. Ez nulla tolva a legkisebb értéke DateTime és írja meghatározott.

Az aktuális idő, de mit?

Ha azt szeretnénk, hogy a jelenlegi helyi dátum és idő, a legegyszerűbb módja az, hogy egy statikus mező DateTime.Now.

Széles körben használják, hogy készítsen a helyi dátum és idő, de ha mi dolgozunk a több időzóna, akkor érdemes használni UTC idő, hogy függetlenségét a szállást. Ebben az esetben meg kell hívni:

DateTime.UtcNow visszaadja az aktuális dátum és idő, de ahelyett, hogy a helyi időzónát, bemutatja azokat a UTC időben. Fontos megjegyezni, hogy bizonyos tulajdonságait használni kívánt, mert beállítani a két bitek dateData, amelyek meghatározzák, hogy milyen típusú DateTime. Könnyen kérni a két bit madárijesztő egy tulajdonság Fajta:

Tervezők DateTimeKind

Most használ vagy UtcNow, tudjuk meg a Madárijesztő bitek dateData rendesen, de mi van, ha azt szeretnénk, hogy meghatározza azt a dátumot és az időt (például, hogy képviselje bizonyos szabadság vagy a kulcs naptári esemény)? Sok tervező túlterhelt oly módon, hogy egy további lehetőség DateTimeKind:

Meg kell jegyezni, hogy a kivitelező, hogy mindössze az év, hónap, nap nem paraméter DateTimeKind. Ha azt szeretnénk, hogy meghatározzák a DateTime például amely csak egy dátum nélkül (időérték) keretében UTC vagy a helyi időre, akkor jobb, ha ezt egyértelmûen:

Ha szüksége van egy dátum vagy az idő, de nem mindkettő együtt

Gyakran a design, akkor kell csak a dátum vagy idő összetevő. Számos hasznos funkciók, amelyek segítségével gyorsan eljutni hozzájuk.

Nem kell kézzel építésére új példányait DateTime:

Először is van egy statikus tulajdonság a mai, ami számunkra datetime az aktuális dátum éjfélkor helyi idő szerint. Vagy, ha van DateTime például, és csak szeretné a dátumot vagy időt alkatrész, akkor a dátum tulajdon vagy TimeOfDay volt.

Dátum tulajdonság visszaadja egy új példányt tartalmazó eredeti dátum idején éjfélkor (nulla óra, perc, másodperc), TimeOfDay tulajdonság visszaadja a TimeSpan például, hogy az tartalmazza az időt, az eredeti példány (elküldheti mint egy eltolt az eredeti forrás éjfélig).

Műveletek DateTime

A legtöbb tudod, hogy össze tudjuk hasonlítani DateTime esetekben a hagyományos összehasonlító operátorok (<, <=,>,> =, ==. =) Vagy keresztül CompareTo () módszer. De azt is hozzá, és kivonni DateTime példányok.

Tartsuk szem előtt, hogy DateTime megváltoztathatatlan, ami azt jelenti, hogy minden egyes alkalommal, amikor egy új példány jön létre, ha foglalkoznak DateTime. De mint DateTime - a szerkezet egyetlen területen, a járulékos költségek rendkívül alacsonyak, és nem szabad azt gondolni ezt a tényezőt.

Hozzáadása, hogy a példány TimeSpan DateTime felhasználásával lehetséges hozzáadása () módszer és a + operátor. TimeSpan lehet pozitív vagy negatív (negatív TimeSpan egyenértékű azzal, mintha a pozitív kivonás TimeSpan, és fordítva).

Ha nem kell a TimeSpan teljesen, és csak azt, hogy (vagy veszítenek) az egyes komponenseket, akkor a segítő módszerek hozzáadása. () A nap, óra, év, stb

Megjegyezzük, hogy az Add módszerrel. () A kapcsolódó módszerek kivonás. (). Abban az esetben, az Add módszerrel. () Ha kell kivonni nap, óra, hónap, stb csak meg kell adni a negatív érték.

Szerkezet DateTime számos előnye van. Annak ellenére, hogy ez egy nagyon egyszerű és hatékony, ugyanakkor a teljesítmény, amelyet a műveleteket támogatja.

Kapcsolódó cikkek