Avatar
jenda
Člen
Avatar
jenda:

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. října 22:27
Avatar
Odpovídá na jenda
Michal Štěpánek:

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. října 7:32
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
jenda
Člen
Avatar
Odpovídá na Michal Štěpánek
jenda:

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. října 13:37
Avatar
ostrozan
Redaktor
Avatar
ostrozan:

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. října 16:26
Avatar
ostrozan
Redaktor
Avatar
ostrozan:
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. října 16:47
Avatar
jenda
Člen
Avatar
Odpovídá na ostrozan
jenda:

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. října 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.