eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingróżnica dat C# vs PL/SQL › Re: różnica dat C# vs PL/SQL
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!feeder.erje.net!
    newsfeed01.sul.t-online.de!newsfeed00.sul.t-online.de!t-online.de!news.nask.pl!
    news.nask.org.pl!news.onet.pl!not-for-mail
    From: Paweł Kierski <n...@p...net>
    Newsgroups: pl.comp.programming
    Subject: Re: różnica dat C# vs PL/SQL
    Date: Tue, 27 Oct 2009 09:52:50 +0100
    Organization: http://onet.pl
    Lines: 32
    Message-ID: <hc6cd3$f40$1@news.onet.pl>
    References: <9...@d...googlegroups.com>
    Reply-To: n...@p...net
    NNTP-Posting-Host: 91.197.12.15
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1256633571 15488 91.197.12.15 (27 Oct 2009 08:52:51 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Tue, 27 Oct 2009 08:52:51 +0000 (UTC)
    User-Agent: Mozilla-Thunderbird 2.0.0.0 (X11/20070601)
    In-Reply-To: <9...@d...googlegroups.com>
    Xref: news-archive.icm.edu.pl pl.comp.programming:183883
    [ ukryj nagłówki ]

    Jakub Owczarski wrote:
    > Witam.
    > Mam pewną bazę gdzie data trzymana jest w polu number. Po szybkim
    > sprawdzeniu (w oracle) wyszło mi, że jest to liczba dni od 0001-01-02.
    > Teraz potrzebowałem też pomieszać w tym na poziomie C# no i okazuje
    > się, że dostaję różne wyniki.
    > Testuję w oracle:
    > select to_date('2009-10-25','yyyy-mm-dd') - to_date('0001-01-02','yyyy-
    > mm-dd') ts from dual
    > dostaję ts = 733705
    >
    > w C#:
    > TimeSpan ts = new TimeSpan();
    > ts = new DateTime(2009, 10, 25).Date - new DateTime(1, 1, 2).Date;
    > dostaję ts = 733703
    >
    > Czyli dwa dni różnicy. Ma ktoś pomysł o co tu chodzi? Skąd się biora
    > te dwa dni różnicy?

    Bo to niejawnie wartości z po za zakresu. Jeśli nie znormalizujesz dat
    np. do dni juliańskich, to nic z tego nie będzie. Równie dobrze możesz
    porównywć daty z kalendarza Majów i prawosławnego.

    Po drodze było co najmniej przejście z kalendarza juliańskiego na
    gregoriański, które "zniknęło" kilka dni. Na dodatek ekstrapolując
    wstecz regułę wyznaczania dni przestępnych z kalendarza gregoriańskiego
    przed reformę masz dodatkowe kilka dni różnicy (np. juliański 1200 był
    przestępny, choć wg reguły gregoriańskiej nie byłby).

    --
    Paweł Kierski
    n...@p...net

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: