Program w c liczacy ilosc dni

Platon
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 20 paź 2008, o 18:18
Płeć: Mężczyzna
Lokalizacja: wrocław
Pomógł: 1 raz

Program w c liczacy ilosc dni

Post autor: Platon »

Mam problem. Musze napisac program w c, ktory poprosi o wpisanie daty urodzin, daty dzisiejszej, i policzy ile dokladnie minelo dni. Oczywiscie biorąc pod uwagę rok przestępny. Mam juz program ktory prosi o wpisanie, dzien, miesiac, rok urodzenia, a także dzien, miesiac, rok jaki jest teraz. Ale nie wiem jak napisac zeby liczył ilość dni z gory dziekuje za pomoc
abc666

Program w c liczacy ilosc dni

Post autor: abc666 »

Liczysz ile było pełnych lat, potem liczysz ile było przestępnych (warunek znajdziesz na Wikipedii), dodaje tą liczbę do liczby pełnych lat razy 365, potem już tylko musisz rozpatrzeć ile było dni w tych niepełnych latach.
Platon
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 20 paź 2008, o 18:18
Płeć: Mężczyzna
Lokalizacja: wrocław
Pomógł: 1 raz

Program w c liczacy ilosc dni

Post autor: Platon »

ok to rozumiem, ale powiedzmy od 6 czerwca 1980 do dzisiaj nie minely tylko 29 lat, tylko minely 29 lata (do 6 czerwca 2009) i 154 dni od 6 czerwca 2009 do dzisiaj wiec razem 10747 a wedlug ciebie 10593. nie wiem jak zdefiniowac zeby liczyl wlasnie te dni od wlasnie np 6 czerwca 2009 do dzisiaj bo pelne lata to wiem. oczywiscie w obliczeniach wzialem pod uwage lata przestepne
abc666

Program w c liczacy ilosc dni

Post autor: abc666 »

Obliczasz liczbę dni w roku startowym i roku końcowym, z tym że raz liczysz od jednej strony, drugi raz z drugiej. Stwórz sobie tablicę z liczbą dni w miesiącu. Wtedy w roku startowym masz (d-podany dzień, m-podany miesiąc) tab[m]-d+tab[m+1]+...+tab[12]. Oczywiście to zliczasz sobie w pętli razem z uwzględnieniem tego czy dany rok jest przestępny jeśli wliczamy luty. Podobnie w roku końcowym tab[1]+tab[2]+...+tab[m-1]+d.

Oczywiście tutaj użyłem numeracji od 1 żeby nie było wątpliwości.
Dodatkowo jeśli chcesz wliczane dni początkowo i końcowe musisz dodać 2.
Platon
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 20 paź 2008, o 18:18
Płeć: Mężczyzna
Lokalizacja: wrocław
Pomógł: 1 raz

Program w c liczacy ilosc dni

Post autor: Platon »

bylbys w stanie mi to jakos napisac w c?? tak ogolnikowo. chodzi o sama funckje i petle zliczajaca wszystkie roki ktore sa przestepne i to jak obliczyc te dni od pelnych lat do dnia dzisiejszego
abc666

Program w c liczacy ilosc dni

Post autor: abc666 »

powiedzmy że mamy dane już
pd - dzień początkowego roku
pm - miesiąc początkowego roku
pr - początkowy rok
analogicznie
kd,km,kr

Wtedy, pełne lata

Kod: Zaznacz cały

L=kr-pr-2
W tych latach musimy policzyć lata przestępne. Powiedzmy, że już policzyliśmy i mamy tą liczbę w
LP

Mamy tablice

Kod: Zaznacz cały

mies = {31,28,31,30,31,30,31,31,30,31,30,31}
Zliczamy z roku początkowego

Kod: Zaznacz cały

s1=0;
for(m=pm;m<12;m++) {
s1+=mies[m-1];
if(m=1 && warunek na przestępność roku pr) { s1+=1; }; 
}
s1-=pd;
Zliczamy z końca

Kod: Zaznacz cały

s2=0;
for(m=1;m<km;m++) {
s2+=mies[m-1];
if(m=1 && warunek na przestępność roku kr) { s2+=1; }; 
}
s2+=kd;
Na koniec liczba dni to

Kod: Zaznacz cały

nod=365*L+LP+s1+s2+(2);
ODPOWIEDZ