Odejmowanie od daty

0

Witam
wiem że to trochę niezgodne z regulaminem ale siedzę już nad tym tyle czasu że aż wstyd i proszę aby ktoś się ulitował i napisał jak od DateTime odjąć np. 88:46:23 (88h:46m:23s) [???]
Pozdrawiam

0

DateTime.Subtract()

W PowerShellu wyglądało by to w tym stylu:
(new-object System.DateTime(2007,11,20,0,0,0)).Subtract([System.DateTime]::Now)

W C# nie mam teraz czasu sprawdzać, ale tworzysz sobie nowy obiekt podając mu te 88h i minuity w odpowiednich parametrach i od innej daty odejmujesz wywołując w niej metodę subtract.

0

DateTime d1 = new DateTime(2007, 06, 25, 3, 0, 0);
DateTime d2 = new DateTime(1, 1, 1, 5, 4, 5);
TimeSpan d3 = d1.Subtract(d2);
label4.Text = Convert.ToString(d3);

daje mi 732850:21:55:55 :-/

0

zamień sobie 88h na dni (miesiące) i potem odejmij dwie daty
albo odejmij ręcznie, tzn now (czy co tam masz) zdekoduj na lata, miesiące, dni, godziny, minuty, sekundy, odejmiji to co masz odjąć i zakoduj z powrotem.

Pierwsze jest wg. mnie szybsze i poprawniejsze

0

Nie wiem jak w .NET ale w Win32 to wygląda tak:

_int64 Delta(const SYSTEMTIME st1, const SYSTEMTIME st2)
{
    union timeunion {
        FILETIME fileTime;
        ULARGE_INTEGER ul;
    } ;

    timeunion ft1;
    timeunion ft2;

    SystemTimeToFileTime(&st1, &ft1.fileTime);
    SystemTimeToFileTime(&st2, &ft2.fileTime);

    return ft2.ul.QuadPart - ft1.ul.QuadPart;
}

ze strony: http://www.codeguru.com/forum/showthread.php?t=345294

@edit:

tutaj dla C# znalazłem: http://www.c-sharpcorner.com/[...]6172429PM/DateDiff_CS_DC.aspx

0

Wielkie dzięki [!!!]
POZDROWIENIA [!!!]

0

ja nie wiem co wy tak kombinujecie...

DateTime nowaData = DateTime.Now.Subtract(new TimeSpan(88,46,23);

Wkoncu od DateTime mozna bez problemu odjac TimeSpana i otrzymac nowy DateTime. Wystarczy poczytac co intelisense Ci podpowiada, wkoncu po to to jest :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0