Hi all, chtěl bych se zeptat, zda by mi někdo poradil, jak v C# porovnat dva datumy. Vím, že ve VBA existuje funkce DateDiff('m',datod,datdo) a ta mi vrati o kolik měsíců se ty dva datumi liší. Ale jak to udělat v C#? Někdo mi radil, abych použil DateTime.Compare, ale to mi jen řekne, jestli je ten datum větší, menší nebo si jou rovny. Pak bych mohl použít (datod - datdo).TotalDays, jenže zde mi vystává problém, že některý měsíc má 31 dnů, některý 30, apod. Mno a co vlastně chci (napíšu to ve VBA) DateDiff('m', datod, datdo) < 1 -> porvnej mi dva datumy a pokud mezi nima bude rozdil mensi nez jeden mesic, tak neco proved. Jak toho dosáhnoutv c#?
Fórum › .NET
Porovnání dvou datumů
![](img/forum_vlakno_help_vyreseno.png)
Ahoj,
zkus se podívat na tento link http://forums.asp.net/p/1289294/2486719.aspx, poslední příspěvek.
Pěkný den
Jarda Jirava
Hi,
díky za radu, sice mi v něčem pomohla, ale né ve všem. Proto jsem dlouho hledal a nakonec našel. Jako DB používám Postgres, takže jsem hledal řešení pro tuto DB. Dám Vám to sem a třeba to někomu pomůže.
CREATE FUNCTION datediff (diffType Character Varying(15), date1 Date, date2 Date) RETURNS integer AS $$
DECLARE
YEAR_CONST Character Varying(15) := 'year';
MONTH_CONST Character Varying(15) := 'month';
DAY_CONST Character Varying(15) := 'day';
diffInInterval Interval;
diffInDoublePrecision Double Precision := 0;
diffInInteger Integer := 0;
dateTemp Date;
BEGIN
diffInInterval := age(date2, date1);
IF lower($1) = lower(YEAR_CONST) THEN
diffInDoublePrecision := date_part('Year', diffInInterval);
ELSEIF lower($1) = lower(MONTH_CONST) THEN
diffInDoublePrecision := (date_part('Year', diffInInterval) * 12) + date_part('Month', diffInInterval);
ELSEIF lower($1) = lower(DAY_CONST) THEN
diffInDoublePrecision := endDate - startDate;
END IF;
diffInInteger := CAST(diffInDoublePrecision AS Integer);
RETURN diffInInteger;
END;
$$ LANGUAGE plpgsql;
Díky za rady a zass někdy hoj.
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 17 hostů
Podobná vlákna
Porovnání datumů — založil xmas7
Trigger pro porovnání datumu s sysdate při vkládání záznamu — založil Anonymní uživatel
Seřazení podle datumu z dvou tabulek — založil T
Porovnani dvou poli — založil lol
Porovnani dvou stringu — založil insider
Moderátoři diskuze