arkadaslar turbo pascalda iki tarih arasındaki gün sayısını bulan program yazıyorum ve suan beynım durdu dıyebilirim sadece su sorunum var dongüyü nasıl case of a baglıcaz yardımcı olursanız sevınırım örnek vermek gerekirse
for i:=yil1 to yil2 do begin toplam:=toplam+1; end;
case i of
2004..2007 ise 1 deger atsın subat icin 2008..2011 ise 1 atasın
eger kullanıcı 2004 2008 girdi ise 2 atıcak toplanarak yani döngü dondükce deger alsın o tarih aralıgında amacım bu
serseri546
kullanıcısına yanıt
Case değerini yıla göre verirsen girilebilecek çok sayıda tarih için çok sayıda case girişi yapman lazım. (ayların-günlerin hesaba katılmadığı sadece yıl için) Bunun için yıl değerininın 4 ile modunu al. Mod 4 sonucu sıfır çıkan yıllar artık yıllardır sadece bunun için +1 gün hesapla.
program günler; uses .....
var yil1, yil2, gunsayi, i, m :longint; {i döngü için, m mod sonucu için}
begin write('Başlangıç yılını girin:') readln(yil1); write('Bitiş yılını girin:') readln(yil2); gunsayi:=0;
for i=yil1 to yil 2 do begin m = i mod 4; case i of 0 :gunsay:=gunsayi+366; {artık yıl} 1..3:gunsay:=gunsayi+365; {normal yıl} end; end; writeln('toplam ',gunsayi,' gün'); end.