[ miniplazma @ 13.12.2009. 21:15 ] @
Zadatak je da se ispiše broj dana između dva datuma(uključujući i ta dva dana).Pogledajte kod,jer je greška uvijek oko 5-20 dana.Ali nikako da vidim u čemu je problem...Ideja je da računa od ''nulte godine''(ovdje 1980) do prvog datuma,pa do drugog i razlika te dvije vrijednosti je traženi rezultat Code: program razlikadatuma1; var d1,d2,m1,m2,g1,g2,r,r1,r2:integer; function prestupna(g:integer):integer; var p:integer; begin if ((g mod 4=0) and (g mod 100<>0)) or (g mod 400=0)then p:=1 else p:=0; prestupna:=p; end; function godina(d,m,g:integer):integer; var i,r:integer; begin r:=0;i:=1980; while i<g do begin r:=r+365+prestupna(g); i:=i+1; end; godina:=r; end; function mjesec(d,m,g:integer):integer; var j,r:integer; begin r:=d; for j:=1 to (m-1) do begin case(m) of 1,3,5,7,8,10,12: r:=r+31; 2: r:=r+28+prestupna(g); 4,6,9,11: r:=r+30; end; end; mjesec:=r; end; begin writeln('unesi prvi datum'); readln(d1,m1,g1); writeln('unesi drugi datum'); readln(d2,m2,g2); r1:=godina(d1,m1,g1)+mjesec(d1,m1,g1); r2:=godina(d2,m2,g2)+mjesec(d2,m2,g2); if (r1>=r2) then r:=r1-r2+1 else r:=r2-r1+1; writeln('razlika dana je ',r); readln; end. |