Porovnání dvou datumů – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Porovnání dvou datumů – .NET – Fórum – Programujte.comPorovnání dvou datumů – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
TomasUL0
Newbie
20. 4. 2009   #1
-
0
-

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#?

Nahlásit jako SPAM
IP: 90.177.21.–
Reklama
Reklama
JardaJirava0
Stálý člen
20. 4. 2009   #2
-
0
-
Nahlásit jako SPAM
IP: 194.213.35.–
MCAD, MCPD
http://jirava.net/blog
http://xaml.cz - Magazín moderních technologií založených na XAML
TomasUL0
Newbie
21. 4. 2009   #3
-
0
-

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.

Nahlásit jako SPAM
IP: 90.177.21.–
Zjistit počet nových příspěvků

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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 88 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý