Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program ntidan;
- //program izracunava datum nakon n dana od datog datuma
- var
- d1,d2,m1,m2,g1,g2,n: integer;
- function prestupna(n:integer):integer; //funkcija ispituje prestupnost godine
- begin
- if ((n mod 4=0) and not(n mod 100=0)) or (n mod 400=0) then
- prestupna:=1
- else prestupna:=0;
- end;
- function kd(d,m,g:integer):boolean; //funkcija ispituje da je argument korektan datum
- var maxdan:integer;
- begin
- case (m) of
- 1,3,5,7,8,10,12: maxdan:=31;
- 2: maxdan:=28+prestupna(g);
- 4,6,9,11: maxdan:=30;
- end;
- kd:=(m>0) and (m<13) and (d>0) and (d<=maxdan);
- end;
- function danugod (d,m,g:integer):integer; //funkcija odredjuje redni broj dana u godini
- var rez:integer;
- begin
- case (m) of
- 1: rez:=d;
- 2: rez:=31+d;
- 3: rez:=59+prestupna(g)+d;
- 4: rez:=90+prestupna(g)+d;
- 5: rez:=120+prestupna(g)+d;
- 6: rez:=151+prestupna(g)+d;
- 7: rez:=181+prestupna(g)+d;
- 8: rez:=212+prestupna(g)+d;
- 9: rez:=243+prestupna(g)+d;
- 10: rez:=273+prestupna(g)+d;
- 11: rez:=304+prestupna(g)+d;
- 12: rez:=334+prestupna(g)+d;
- end;
- danugod:=rez;
- end;
- procedure ndan(d1,m1,g1,n:integer; var d2,m2,g2:integer); //funkcija odredjuje datum nakon n dana
- begin
- d2:=danugod(d1,m1,g1)+n;
- g2:=g1;
- while (d2>(365+prestupna(g2)))do
- begin
- g2:=g2+1;
- d2:=d2-365-prestupna(g2-1);
- end;
- m2:=1;
- if (d2>=334+prestupna(g2)) then begin m2:=12; d2:=d2-334-prestupna(g2); end
- else if (d2>304+prestupna(g2)) then begin m2:=11; d2:=d2-304-prestupna(g2); end
- else if (d2>273+prestupna(g2)) then begin m2:=10; d2:=d2-273-prestupna(g2); end
- else if (d2>243+prestupna(g2)) then begin m2:=9; d2:=d2-243-prestupna(g2); end
- else if (d2>212+prestupna(g2)) then begin m2:=8; d2:=d2-212-prestupna(g2); end
- else if (d2>181+prestupna(g2)) then begin m2:=7; d2:=d2-181-prestupna(g2); end
- else if (d2>151+prestupna(g2)) then begin m2:=6; d2:=d2-151-prestupna(g2); end
- else if (d2>120+prestupna(g2)) then begin m2:=5; d2:=d2-120-prestupna(g2); end
- else if (d2>90+prestupna(g2)) then begin m2:=4; d2:=d2-90-prestupna(g2); end
- else if (d2>59+prestupna(g2)) then begin m2:=3; d2:=d2-59-prestupna(g2); end
- else if (d2>31) then begin m2:=2; d2:=d2-31; end;
- writeln(d2,'. ',m2,'. ',g2,'. ')
- end;
- begin
- write ('dan= '); readln(d1);
- write ('mjesec:= '); readln(m1);
- write ('godina:= '); readln(g1);
- write ('broj dana '); readln(n);
- if (kd(d1,m1,g1)) then
- begin
- ndan(d1,m1,g1,n,d2,m2,g2);
- end
- else writeln (' los datum');
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement