Diskuze: Porovnání datumu ve Foreach cyklu - aplikace spadne
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Uvědomuješ si co vůbec děláš? Ty vezmeš datum, převedeš ho na string a pak si ho převedeš znova na datum. Nevím co dělá DateTime.Compare, ale to nemůžeš jednoduše napsat:
ta.Datum > datum
Popřípadě s tou Compare metodou:
DateTime.Compare(ta.Datum, datum);
Ano, uvědomuju. Jak jsi psal, že to mám zkusit jednoduše porovnat, tak to bylo to první co jsem udělal, ale dopadá to stejně. Nejhorší je, že to nevyhodí žádnou vyjímku, ale přímo Global error, takže se nemám čeho chytit...
nefunguje to protoze to spadne na parse (na cem jinem by to taky spadlo ze

pada to tam z duvodu ze tam cpes datum ve spatnem formatu. zalezi na jakem vlakne poustit tu metodu parse protoze ta si bere z aktualniho vlakna Culturu a zkousi to parsovat vuci ni (takze nejspis se pokousis prevest cesky format datumu pomoci anglicke varianty DateTime.Parse).
alternativne to jeste muze spadnout na nullExceptionu to protoze nektery ze stringu je null.
rada: v programu string reprezentuj vzdy strukturou DateTime
Nezkusil sis vypsat, jaké hodnoty se ti to vlastně ve skutečnosti porovnávají?
Jo ty máš to datum ve stringu, tak jsme doma... Btw, celkem si mě pobavil
ještě jsem neviděl volat
na stringu ToString 
foreach (Tasks ta in obj)
{
string sPredmet = ta.Predmet;
string sDatum = ta.Datum;
string SPripom = ta.Pripomenuti;
string sZbD = ta.ZbyvaDni;
string sSdileno = ta.Sdileno;
string sSpleneno = ta.Splneno;
int results = DateTime.Compare(ta.Datum, datum);//předpokládám, že ta.Datum je DateTime
if(results > 0)
{
MissTasks.Add(new Tasks(sPredmet, sDatum, sSpleneno, sZbD, SPripom, sSdileno));
}
else
{
myTasks.Add(new Tasks(sPredmet, sDatum, sSpleneno, sZbD, SPripom, sSdileno));
}
}
možná ti pomůže https://msdn.microsoft.com/…vs.110).aspx
nevíme, co je v "datum" Jestli je to DateTime, bude to fungovat. jestli ne, tak
si ho tam ulož, ale jinak než DateTime.Parse(), nebo používej cultures
jinak Jan Vargovský myslím, že se to nedá porovnávat jen pomocí <,
>, ... Už jsem na tom jednou pohořel. Nebo to prostě neumím používat,
no 
public static TimeSpan operator -(DateTime d1, DateTime d2);
public static DateTime operator -(DateTime d, TimeSpan t);
public static bool operator !=(DateTime d1, DateTime d2);
public static DateTime operator +(DateTime d, TimeSpan t);
public static bool operator <(DateTime t1, DateTime t2);
public static bool operator <=(DateTime t1, DateTime t2);
public static bool operator ==(DateTime d1, DateTime d2);
public static bool operator >(DateTime t1, DateTime t2);
public static bool operator >=(DateTime t1, DateTime t2);
Spíše to druhé 
Tak to padá přesně kvůli tomu jak jsi říkal. Moje datum je ve formátu dd/mm/yyyy a snaží se to parsovat do DateTime EN dd/mm/yyyy hh:mm:ss AM. Nevíte jak bych mohl udělat, aby to šlo přímo do českého, nebo jen do formátu **dd/mm/yy **?
Jan Vargovský mám datum ve stringu, bohužel ho jako DateTime nedostanu :/
CultureInfo culture = new CultureInfo("cs-CZ");
DateTime date = DateTime.Parse("1/2/2015", culture);
Zobrazeno 13 zpráv z 13.
