IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
jenda
Člen
Avatar
jenda:7.10.2016 22:27

Potřeboval bych poradit co s tím, když mi DateTime.TryPar­se(s, culture, styles, out test_data) převede řetězec "-49 478,03" nesmyslně rozpozná jako datum {3.3.0478 2:00:00}.
Používám culture = CultureInfo.Cre­ateSpecificCul­ture("cs-CZ") a styles = DateTimeStyles­.None;

Datumy se jinak ve zdroji objevují ve formátu 1.1.2016

Můžete mi prosím poradit, co s tím, aby mi to uvedené číslo nerozpoznávalo jako datum?

Moc děkuji

 
Odpovědět
7.10.2016 22:27
Avatar
Odpovídá na jenda
Michal Štěpánek:8.10.2016 7:32

Trošku to nechápu. Nechceš, aby to číslo nerozpoznávalo jako datum, ale přitom ho parsuješ na "DateTime"?

Nahoru Odpovědět
8.10.2016 7:32
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na jenda
sadlomaslox25:8.10.2016 9:23

DateTime.TryPar­seExact

Editováno 8.10.2016 9:24
 
Nahoru Odpovědět
8.10.2016 9:23
Avatar
jenda
Člen
Avatar
Odpovídá na Michal Štěpánek
jenda:8.10.2016 13:37

Já potřebuji rozpoznat, když je v textu datum, tak aby to bylo datum, protože s ním dál pracuji. Ale když je v textu číslo, tak je samozřejmě nesmysl, aby to rozpoznal jako datum. Zvláštní je, že u jiných čísel se to nestává

 
Nahoru Odpovědět
8.10.2016 13:37
Avatar
ostrozan
Tvůrce
Avatar
ostrozan:8.10.2016 16:26

tak zkus regex

(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d

ale chce to trochu studia regulárních výrazů

 
Nahoru Odpovědět
8.10.2016 16:26
Avatar
ostrozan
Tvůrce
Avatar
ostrozan:8.10.2016 16:47
string datum;
string text = "dnešní datum je : 8.10.2016  ";
Regex regex = new Regex(@"([1-9]|[12][0-9]|3[01])\.([1-9]|1[012])\.(19|20)\d\d");
Match match = regex.Match(text);
if (match.Success)
{
    datum=match.Value;
}
 
Nahoru Odpovědět
8.10.2016 16:47
Avatar
jenda
Člen
Avatar
Odpovídá na ostrozan
jenda:9.10.2016 17:26

Díky za nápady.

Já jsem to nakonec udělal jednoduše, stačí ověřit, jestli je v tom mezera, pokud jo, tak to nebude to datum ...

 
Nahoru Odpovědět
9.10.2016 17:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.