FORMÁTOVÁNÍ POKRAČOVÁNÍ

Podobné dokumenty
SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

Znak Slovy Popis Zdroj Výsledek Formátova cí řetězec v CZ verzi Excelu

Kódy pro formát čísla

Algoritmizace a programování. Terminálový vstup a výstup

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Výčtový typ strana 67

Microsoft Office. Excel vlastní formát buněk

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Algoritmizace a programování

Programovací jazyk Java

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

PREPROCESOR POKRAČOVÁNÍ

Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double

zpracovávat události ve Vijeo Designeru

DATOVÉ TYPY POKRAČOVÁNÍ

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing)

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

OOPR_05. Případové studie

PŘETĚŽOVÁNÍ OPERÁTORŮ

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);

Úvod do programovacích jazyků (Java)

Vlastní formát buňky. Vytvoření nebo odstranění vlastního formátu čísla

Paměť počítače. alg2 1

Textové soubory. alg9 1

Sada 1 - PHP. 03. Proměnné, konstanty

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Generické programování

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

- jak udělat konstantu long int: L long velka = 78L;

Teoretické minimum z PJV

Programování v C++ 3, 3. cvičení

Seminář Java II p.1/43

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Specifikace QR kódu pro účely účtenkové loterie

Principy objektově orientovaného programování

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

3 KTE / ZPE Informační technologie

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

Formátové specifikace formátovací řetězce

NumToStr JEDNOTKA PRO PŘEVODY ČÍSEL, DATUMU A ČASU A JINÝCH DATOVÝCH STRUKTUR NA ŘETĚZCE A ZPĚT. Příručka uživatele a programátora

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Programování v Javě I. Leden 2008

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Zápis programu v jazyce C#

Programování v Javě I. Únor 2009

Podbaba - Starý Hloubětín

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru

1 OBECNÝ POPIS 2 3 ZÍSKÁNÍ VÝPISŮ Z INTERNETOVÉHO BANKOVNICTVÍ BANKY 4

Dědičnost (inheritance)

Textové, datumové a časové funkce

7. Datové typy v Javě

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Regulární výrazy. Vzory

Soubor jako posloupnost bytů

CZ.1.07/1.5.00/

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

URČITÝM ZPŮSOBEM PODOBNÉ

Dávky tuzemských a zahraničních příkazů ve formátu TXT

Rozšíření ksh vůči sh při práci s proměnnými

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce

Tabulková data. budeme pracovat s CSV soubory položky oddělené středníkem, např.

BASPELIN CPM. Popis komunikačního protokolu verze EQ22 CPM EQ22 KOMPR

Java a XML. 10/26/09 1/7 Java a XML

IRAE 07/08 Přednáška č. 1

MQL4 COURSE. By Coders guru -3 DATA TYPES. Doufám, že předchozí lekce SYNTAX se vám líbila. V té jsme se pokoušeli zodpovědět:

SOUBORY, VSTUPY A VÝSTUPY

Jazyk C++ I. Polymorfismus

Laboratorní práce: SNMP - Linux snmputils

Druhy souborů. textové. binární. nestrukturované txt strukturované - ini, xml, csv. veřejné bmp, jpg, wav proprietární docx, cdr, psd

C# konzole Podíl dvou čísel, podmínka IF

UŽIVATELSKY DEFINOVANÉ FUNKCE

2. cvičení z ZI1 - Excel

Úvod do programování - Java. Cvičení č.4

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

Avíza ve formátu MT942

17. Projekt Trojúhelníky

Základy jazyka C. Základy programování 1 Tomáš Kühr

Jazyk C# a platforma.net

NPRG031 Programování II 1 / :47:55

Projekty pro výuku programování v jazyce Java

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Jazyk C# (seminář 5)

Proměnné a parametry. predn_08.odt :00:38 1

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Programování v C++ 2, 4. cvičení

Algoritmizace a programování

Třída jako zdroj funkcí

Reflexe. Aplikační programování v Javě (BI-APJ) - 8 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Konfigurace displeje xdem 31

Programování v jazyce JavaScript

Java - řazení objektů

KTE / ZPE Informační technologie

Úvod do programování. Lekce 1

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

Uživatelská příručka SBOX

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Programování v jazyce JavaScript

Transkript:

FORMÁTOVÁNÍ POKRAČOVÁNÍ Standardní formátovací řetězec pro datum a čas Standardní formátovací řetězec pro formátovaný parametr typu System.DateTime obsahuje pouze jeden znak formátovacího u. Standardní formát vychází z formátu data a času třídy System.Globalization. DateTimeFormatInfo pro aktuální kulturu, implicitně podle nastavení Windows. Přehled formátovacích ů je uveden v následující tabulce. Uváděná jména vlastností jsou součástí třídy DateTimeFormatInfo. d D f F g G M nebo m o R nebo r s t T u U Y nebo y Zkrácený formát data podle vzoru vlastnosti ShortDatePattern. Dlouhý formát data podle vzoru vlastnosti LongDatePattern. Kombinace u D a t oddělená mezerou. Dlouhý formát data a času podle vzoru vlastnosti FullDateTimePattern. Kombinace u d a t oddělená mezerou. Kombinace u d a T oddělená mezerou. Formát data podle vzoru vlastnosti MonthDayPattern. Tvar cesta tam a zpět (angl. round-trip ). Tento tvar garantuje, že datum a čas zkonvertovaný na řetězec bude možné zkonvertovat zpět na stejnou hodnotu. Má stejný tvar bez ohledu na aktuální kulturu. Formát data a času podle vzoru vlastnosti RFC1123Pattern daného specifikací RFC (Request for Comments) 1123. Uvedená vlastnost je pouze pro čtení, tedy má stejný tvar bez ohledu na aktuální kulturu. Formát data a času podle vzoru vlastnosti SortableDateTimePattern daného normou ISO 8601 umožňující třídění. Uvedená vlastnost je pouze pro čtení, tedy má stejný tvar bez ohledu na aktuální kulturu. Zkrácený formát času podle vzoru vlastnosti ShortTimePattern. Dlouhý formát času podle vzoru vlastnosti LongTimePattern. Univerzální formát data a času umožňující třídění podle vzoru vlastnosti UniversalSortableDateTimePattern. Uvedená vlastnost je pouze pro čtení, tedy má stejný tvar bez ohledu na aktuální kulturu. Není prováděna konverze na jiné časové pásmo. Univerzální formát data a času umožňující třídění. Odpovídá u F s tím rozdílem, že čas je převeden na pásmo UTC (Coordinated Universal Time).. Formát data podle vzoru vlastnosti YearMonthPattern. Příklady pro českou kulturu a instanci data a času v nespecifikovaném čase new DateTime(2007, 1, 20, 23, 5, 10, 458) jsou uvedeny v následující tabulce. 1

d 20.1.2007 D 20. ledna 2007 Výstup f 20. ledna 2007 23:05 F 20. ledna 2007 23:05:10 g 20.1.2007 23:05 G 20.1.2007 23:05:10 M nebo m o R nebo r s 20 ledna t 23:05 T 23:05:10 u 2007-01-20T23:05:10.4580000 Sat, 20 Jan 2007 23:05:10 GMT 2007-01-20T23:05:10 2007-01-20 23:05:10Z U 20. ledna 2007 22:05:10 Y nebo y leden 2007 Uživatelem definovaný formátovací řetězec pro datum a čas Uživatelem definovaný formátovací řetězec pro datum a čas se skládá z jednoho nebo více formátovacích ů, které jsou uvedeny v následující tabulce. Uváděná jména vlastností jsou součástí třídy DateTimeFormatInfo. d dd ddd dddd f, ff atd. až fffffff F, FF atd. až FFFFFFF g nebo gg h hh H HH Den v měsíci v rozsahu 1 až 31 bez nuly na začátku. Den v měsíci v rozsahu 01 až 31 s nulou na začátku. Zkrácený název dne v týdnu daný vlastností AbbreviatedDayNames. Úplný název dne v týdnu daný vlastností DayNames. Desetiny (f), setiny (ff), tisíciny (fff) atd. sekund se zobrazením koncových nevýznamných nul. Dtto jako f ale bez zobrazení koncových nevýznamných nul. Zkratka éry. Pro český kalendář (gregoriánský) se jedná o zkratku n. l. (našeho letopočtu). Hodiny v rozsahu 1 až 12 bez nuly na začátku. Hodiny v rozsahu 01 až 12 s nulou na začátku. Hodiny v rozsahu 0 až 23 bez nuly na začátku. Hodiny v rozsahu 0 až 23 s nulou na začátku. K Text, který informuje o druhu časového pásma. Pro pásmo UTC se zobrazí Z, pro pásmo local se zobrazí čas ve tvaru +hh:mm resp. hh:mm s uvedením o kolik hodin je rozdíl mezi místním časovým pásmem a pásmem GMT. Pro nespecifikované pásmo se nezobrazí nic. 2

m mm M MM MMM MMMM s ss t tt y yy yyy yyyy a více y Minuty v rozsahu 0 až 59 bez nuly na začátku. Minuty v rozsahu 00 až 59 s nulou na začátku. Měsíc v rozsahu 1 až 12 bez nuly na začátku. Měsíc v rozsahu 01 až 12 bez nuly na začátku. Zkrácený název měsíce daný vlastností AbbreviatedMonthNames. Úplný název měsíce daný vlastností MonthNames. Sekundy v rozsahu 0 až 59 bez nuly na začátku. Sekundy v rozsahu 00 až 59 s nulou na začátku. Reprezentuje první znak zkratky A.M./P.M. (v aktuální kultuře) daný vlastností AMDesignator a PMDesignator. Reprezentuje zkratku A.M/P.M. (v aktuální kultuře) daný vlastností AMDesignator a PMDesignator. Dvouciferný rok bez nuly na začátku. Dvouciferný rok s nulou na začátku. Tříciferný rok s nulami na začátku. Pokud je rok větší než 999, zobrazí se celý. Čtyřciferný a víceciferný rok s nulami na začátku. z Posun časového pásma od GMT v hodinách bez nuly na začátku, např. +1. zz Posun časového pásma od GMT v hodinách s nulou na začátku, např. +01. zzz Posun časového pásma od GMT v hodinách a minutách, např. +01:00. : Oddělovač času daný vlastností TimeSeparator. / Oddělovač data daný vlastností DateSeparator. 'ABC' nebo "ABC" Znaky v apostrofech nebo uvozovkách se zobrazí ve výsledném textu ve stejném tvaru jako ve formátovacím řetězci. %c Znak c reprezentuje jeden z formátovacích ů, který je ve formátovacím řetězci uveden samostatně. Např. formátovací řetězec {0:d} zobrazí datum ve zkráceném tvaru, zatímco řetězec {0:%d} zobrazí den v měsíci. \c Ve výsledném textu se zobrazí znak c. jiný znak Jakýkoli jiný znak se zobrazí ve výsledném textu ve stejném tvaru jako ve formátovacím řetězci. Příklady pro českou kulturu a instanci data a času z předchozí kapitoly jsou uvedeny v následující tabulce. položka {0:d. M. yy} 20. 1. 07 {0:dd/MM/yyy} 20.01.2007 {0:ddd dd.mmm.yyyy} Výstup so 20.I.2007 {0:dddd dd.mmmm yyyy} sobota 20.ledna 2007 3

položka Výstup {0:d.m.yy g} 20.5.07 n. l. {0:hh:mm:ss,ffff} 11:05:10,4580 {0:HH:mm:ss,FFFF} 23:05:10,458 {0:HH:mm:ss t} {0:HH:mm:ss tt} 23:05:10 o 23:05:10 odp. {0:HH:mm:ss z} 23:05:10 +1 {0:HH:mm:ss K} 23:05:10 {0:%d} 20 řetězec pro hodnoty výčtových typů řetězec pro hodnoty výčtových typů obsahuje pouze jeden znak formátovacího u. Přehled formátovacích ů je uveden v následující tabulce. G nebo g F nebo f D nebo d Hodnota se převede na řetězec. Není-li to možné, převede se na celé číslo. Je-li výčtový typ deklarován s atributem Flags, pokusí se převést hodnotu na textovou reprezentaci kombinace příznaků oddělených čárkou. Dtto G nebo g s tím rozdílem, že se pokusí převést hodnotu na textovou reprezentaci kombinace výčtových konstant, i když výčtový typ není deklarován s atributem Flags. Hodnota se převede na celé číslo v desítkové soustavě. X nebo x Hodnota se převede na celé číslo v hexadecimálním tvaru délky minimálně 8 číslic doplněný zleva nulami. Jsou deklarovány následující výčtové typy: enum Den { Pondělí = 0x01, Úterý = 0x02, Středa = 0x04, Čtvrtek = 0x08, Pátek = 0x10, Sobota = 0x20, Neděle = 0x40 } [Flags] enum Dny { Pondělí = 0x01, Úterý = 0x02, Středa = 0x04, Čtvrtek = 0x08, Pátek = 0x10, Sobota = 0x20, Neděle = 0x40 } Příklady pro hodnoty výčtových typů Den a Dny jsou uvedeny v následující tabulce. položka Hodnota Výstup {0:G} Den.Středa Středa {0:G} Den.Středa+1 5 {0:G} Dny.Pondělí Dny.Středa Pondělí, Středa {0:G} Den.Pondělí Den.Středa 5 {0:F} Dny.Pondělí Dny.Středa Pondělí, Středa {0:F} Den.Pondělí Den.Středa Pondělí, Středa {0:D} Den.Pátek 16 {0:X} Den.Pátek 00000010 4

Použití kultury Kultura je reprezentována třídou System.Globalization.CultureInfo. Jeden z konstruktorů této třídy má parametr typu string reprezentující název kultury a podkultury. Např. cs-cz pro českou kulturu podkulturu Česká republika, de-at pro německou kulturu podkulturu Rakousko apod. Druhý z konstruktorů této třídy má parametr typu int reprezentující číslo kultury. Třída obsahuje různé vlastnosti popisující kulturu, mj. také: DateTimeFormat typu DateTimeFormatInfo, NumberFormat typu NumberFormatInfo, které jsou využívány pro formátování. Statická vlastnost CurrentCulture poskytuje (nikoli nastavuje) instanci kultury pro aktuální podproces. Pro každý podproces aplikace lze nastavit samostatnou kulturu. Aktuální kulturu pro daný podproces poskytuje nebo nastavuje vlastnost CurrentCulture třídy System.Threading.Thread. Aktuální podproces aplikace poskytuje statická vlastnost CurrentThread třídy Thread. Aktuální kulturu aktuálního podprocesu lze tedy nastavit nebo získat pomocí výrazu System.Threading.Thread.CurrentThread.CurrentCulture nebo získat pomocí výrazu System.Globalization.CultureInfo.CurrentCulture. Příklad V následujícím příkladu se vytvoří instance české kultury. V ní se změní oddělovač tisíců na tečku. Instance kultury se nastaví jako aktuální kultura aplikace a vypíše se celé číslo pomocí formátovacího řetězce N. CultureInfo ci = new CultureInfo("cs-CZ"); // Czech ci.numberformat.numbergroupseparator = "."; // oddělovač tisíců // v číselném formátu Thread.CurrentThread.CurrentCulture = ci; Console.WriteLine("{0:N}", 1234); Výstup programu bude následující: 1.234,00 Rozhaní IFormatProvider Třída string nabízí ještě další metodu Format, mající tvar string Format(IFormatProvider provider, string format, params object[] args) Parametr provider reprezentuje poskytovatele formátu. Rozhraní IFormatProvider implementují třídy NumberFormatInfo, DateTimeFormatInfo a CultureInfo. V metodě Format bez parametru typu IFormatProvider string Format(string format, params object[] args) se použije jako poskytovatel formátu aktuální kultura aktuálního podprocesu. 5

Příklad Uvedenou metodu Format lze např. použít v následujících příkazech DateTime d = new DateTime(2007, 2, 28, 10, 23, 5); Console.WriteLine(string.Format(new CultureInfo("de-De"), "{0:D}", d)); Console.WriteLine(string.Format(NumberFormatInfo.InvariantInfo, "{0:0.00}", 123.458)); Druhý příkaz vypíše dlouhý formát data pro německou kulturu. Třetí příkaz vypíše číslo v neutrální kultuře. Výstup programu bude následující: Mittwoch, 28. Februar 2007 123.46 Metody ToString Základní datové typy, výčtové typy a typ DateTime obsahují kromě předefinované virtuální metody ToString() třídy object další verze této metody: string ToString (IFormatProvider provider) string ToString (string format) string ToString (string format, IFormatProvider provider) První verze převádí hodnotu na řetězec s použitím všeobecného formátu ("G") a informací o kultuře. Druhá verze převádí hodnotu na řetězec s použitím zadaného formátovacího řetězce pro aktuální kulturu. Třetí verze převádí hodnotu na řetězec s použitím zadaného formátovacího řetězce a informací o kultuře. Příklad class Program { static void Main(string[] args) { double a = 123.456; DateTime d = new DateTime(2007, 2, 28); Console.WriteLine(d.ToString(new CultureInfo("en-US"))); Console.WriteLine(a.ToString("0.00")); Console.WriteLine(a.ToString("0.00", new CultureInfo("en-US"))); Console.ReadKey(); } } Výstup programu bude následující 2/28/2007 12:00:00 AM 123,46 123.46 6