Procedura obliczajaca liczbe dni pomiedzy dwoma datami

Wyświetlono archiwalną wersję tematu "Procedura obliczajaca liczbe dni pomiedzy dwoma datami" z forum pl.comp.programming

Jacek - 12 Paź 1997, 03:00

Czy ktos moze posiada procedure obliczajaca liczbe dni pomiedzy dwoma
podanymi datami: np. liczba dni od 12.04.83 do 10.01.96 ?

Pozdrawiam
Jacek

Jacek Chmielewski - 12 Paź 1997, 03:00

Czy ktos moze posiada procedure obliczajaca liczbe dni pomiedzy dwoma
podanymi datami: np. liczba dni od 12.04.83 do 10.01.96 ?
Pozdrawiam
Jacek

Piotr Piatkowski - 12 Paź 1997, 03:00




: Czy ktos moze posiada procedure obliczajaca liczbe dni pomiedzy dwoma
: podanymi datami: np. liczba dni od 12.04.83 do 10.01.96 ?

Chcesz ogólny algorytm, czy procedurę w jakimś konkretnym języku?
I na jaki system (to też wbrew pozorom ma znaczenie :-) )?

Slawomir Marczynski - 13 Paź 1997, 03:00




: Czy ktos moze posiada procedure obliczajaca liczbe dni pomiedzy dwoma
: podanymi datami: np. liczba dni od 12.04.83 do 10.01.96 ?

Poszukaj algorytmow na tzw. `dni julianskie' (Julian Days; JulDay; ...).
W BC++ mozesz wykorzystac obiekty TDate - ale uwaga! - Borland spieprzyl
te obiekty jak tylko potrafil...

Jacek Chmielewski - 13 Paź 1997, 03:00

Poitr, dzieki za odpowiedz.
Interesuje mnie procedura w jezyku C++, system Windows NT.

Bede wdzieczny za odpowiedz.

Pozdrawiam
Jacek



: Czy ktos moze posiada procedure obliczajaca liczbe dni pomiedzy dwoma
: podanymi datami: np. liczba dni od 12.04.83 do 10.01.96 ?

Chcesz ogólny algorytm, czy procedurę w jakimś konkretnym języku?
I na jaki system (to też wbrew pozorom ma znaczenie :-) )?

--
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND


Dariusz Michalek - 13 Paź 1997, 03:00


W BC++ mozesz wykorzystac obiekty TDate - ale uwaga! - Borland spieprzyl
te obiekty jak tylko potrafil...


Mozesz podac wiecej szczegolow? (odnosnie spieprzenia ;-)

Pozdrawiam
Darek

Qrczak - 13 Paź 1997, 03:00


Czy ktos moze posiada procedure obliczajaca liczbe dni pomiedzy dwoma
podanymi datami: np. liczba dni od 12.04.83 do 10.01.96 ?


Sam napisz, to naprawdę nie jest trudne. Hinty: Zamień obie daty na liczbę
dni od ustalonego punktu zerowego. Zrób stałą tablicę, w której dla każdego
miesiąca pamiętasz różnicę w dniu tego miesiąca i dniu roku (długość
wszystkich poprzedzających miesięcy). Rok r jest przestępny gdy (r mod 4 =
0) and (r mod 100 <0) or (r mod 400 = 0) albo !(r % 4) && (r % 100) || !(r
% 400).

                                QRCZAK
    __("<             Marcin Kowalczyk

     ^^      http://kki.net.pl/qrczak/

Marek Matula - 14 Paź 1997, 03:00



Czy ktos moze posiada procedure obliczajaca liczbe dni pomiedzy dwoma
podanymi datami: np. liczba dni od 12.04.83 do 10.01.96 ?



w d,m,y masz poczatkowa date, a td,tm,ty - koncowa:

  int ms[12]={31,28,31,30,31,30,31,31,30,31,30,31};
  unsigned dc=0;
  while(d++!=td || m!=tm || y!=ty) {
    dc++;
    if(m!=2 ? dms[m-1] : d28+(y%4==0)) {
      d=1;
      if(++m12) m=1, y++;
    }
  }
// dc - ilosc dni;

Algorytm ten jest totalnie nieoptymalny (petla while leci dla kazdego
dnia z przedzialu), ale jak nie potrzebujesz tych roznic liczyc
powiedzmy 1000 to wystarczy...
Mozesz tez uzyc funkcji dostounix i unixtodos - przeliczaja date na
ilosc sekund od 1 stycznia 1970 i odwrotnie, a nastepnie otrzymane
wartosci odjac i podzielic przez ilosc sekund/dzien. Tyle ze sie to
spieprzy dla lat <1970...

---
Marek Matula

http://www.polsl.gliwice.pl/~marekm
ICQ UIN: 3888637

Jacek Szewczyk - 16 Paź 1997, 03:00



| Czy ktos moze posiada procedure obliczajaca liczbe dni pomiedzy dwoma
| podanymi datami: np. liczba dni od 12.04.83 do 10.01.96 ?


Jak zwykle nikt nie pomyslal o dniach Julianskich. Algorytm jest znany.
Jest na pewno na simtelu (nawet w pascalu) i chyba na funecie. Ma
troszku duze liczby (zrobiony jest od daty kiedy kalendarz julianski i
gregorianski maily taka sama date, ale uzywaja tego w arkuszach kalk.
wiec chyba nie jest to takie zle. Jak sie podzieli to to przez 7 to masz
dni tygodnia (tak jak w poprzednio proponowanych odpowiedziach) w sumie
roznicatylko daty poczatkowej. Ale astronomowie uzywaja tego juz od
bardzo dawna.
                         JaS'

Poszukuje narzedzi do obliczania wartosci wlasnych i wektorow wlasnych
połaczeni kliku komputerów (serwerów) i wykorzystanie ich mocy do obliczeń
Rzad zlozonosci obliczeniowej: symbole O, Teta, Omega
wprowadzenie do teorii automatow, jezykow i obliczen
Pascal - typ Real - dokladnosc obliczen.
generator
typy licencji
  • aparatura do wytwarzania samogonu
  • jak zrobic zarezerwowane sloty
  • zwlokniale wezly chlonne
  • pgj000050
  • devil driver
  • chomikuj automapa 5 5 1 ppc2003
  • cheater
  • emilia skiba starachowice
  • x660 problem z przesylaniem danych
  • Zbieranina tematów z for dyskusyjnych || Index