Gökhan POLAT
2 TARİH ARASINDAKİ GÜN SAYISINI BULMA [PASCAL]
261484528
Önemli Değişkenler: gun,yazay,yil,gun2,yazay2,yil2
Kullanılan Mantık: Program içerisinde dizi oluşturarak, bu dizi içerisine her ayın kaç çektiğine dair
gün bilgisini girdim toplamda 12 adet gün bilgisi mevcut.Daha sonra ilk işlemimizde sayaç sistemi
kullanarak birinci girilen ay ile birinci girilen yıl arasındaki gün farkını hesaplattım.İkinci işlemimde
birinci girilen yıl ile ikinci girilen yıl arasındaki farkı hesaplattım.Daha sonradan ikinci girilen yılın
başından ikinci girilen aya kadar olan gün sayısını hesaplattım yine sayaç mantığıyla.En sonki
işlemimde ise aynı yıl içerindeki gün sayısını hesaplatıp bunların herbirini bir değişkene atadım ve
bunları topladığımda birinci girilen tarih ile ikinci girilen tarih arasındaki gün sayısına eriştim.
Not: Ay girdilerini yaparken ayların isimleri ile giriş yapabileceğiniz şekilde programlamda lütfen ay
bilgisine rakam girmeyiniz.
Kod:
uses crt;
var
yazay,yazay2 : string ;
girildiğini tutan değişkenler}
{Tarih aylarının yazı ile
gun,gun2,ay,ay2,yil,yil2 :integer;
değişkenler}
{Kullanıcı girdilerini tutan
i,t1,t2,t3,t4,j,t : Integer;
değişkenler}
{Sayyac için gerekli olan
const
'=' olanlar değiştirilemez}
{Sabit değerler anlamı taşır
gunler : array[1..12] of
Integer=(31,28,31,30,31,30,31,31,30,31,30,31); {Her ayın gun
bilgisini tutan dizi}
begin
writeln('------------2 Tarih Arasındaki Gün Farıkını Bulan Program----------');
write('1.Tarihin Gününü Giriniz :'); readln(gun);
girdileri}
{Kullanıcı
write('1.Tarihin Ayını Giriniz
girdileri}
{Kullanıcı
:'); readln(yazay);
write('1.Tarihin Yılını Giriniz :'); readln(yil);
girdileri}
write('2.Tarihin Gününü Giriniz :'); readln(gun2);
girdileri}
{Kullanıcı
{Kullanıcı
write('2.Tarihin Ayını Giriniz
girdileri}
:'); readln(yazay2);
write('2.Tarihin Yılını Giriniz :'); readln(yil2);
girdileri}
if yazay='Ocak'
{Kullanıcı
{Kullanıcı
then ay:=1;
if yazay2='Ocak' then ay2:=1;
if yazay='Şubat' then ay:=2;
if yazay2='Şubat' then ay2:=2;
if yazay='Mart' then ay:=3;
if yazay2='Mart' then ay2:=3;
if yazay='Nisan' then ay:=4;
if yazay2='Nisan' then ay2:=4;
if yazay='Mayıs' then ay:=5;
if yazay2='Mayıs' then ay2:=5;
if yazay='Haziran' then ay:=6;
if yazay2='Haziran' then ay2:=6;
if yazay='Temmuz' then ay:=7;
if yazay2='Temmuz' then ay2:=7;
if yazay='Ağustos' then ay:=8;
if yazay2='Ağustos' then ay2:=8;
if yazay='Eylül' then ay:=9;
if yazay2='Eylül' then ay2:=9;
if yazay='Ekim' then ay:=10;
if yazay2='Ekim' then ay2:=10;
if yazay='Kasım' then ay:=11;
if yazay2='Kasım' then ay2:=11;
if yazay='Aralık' then ay:=12;
if yazay2='Aralık' then ay2:=12;
clrscr;
{ ekran temizleme komutu }
t1:=0;
{ O tarihten yıl sonuna kadar olan gun toplam }
t2:=0;
{ İki yıl arasında kalan gun toplam }
t3:=0;
{ Yıl başından o tarihe kadar olan gun toplam }
t4:=0;
{ Aynı yıl içindeki gun farkın hesaplar }
t:=0;
writeln('-------------Detaylı Bilgi---------------');
{yıl sonuna kadar olan gun sayısını hesapla}
if yil2>yil then {yıl fark en az bir ise }
begin
for j:=ay to 12 do {birinci ayı jye ata 12 ye kadar döndür}
begin
if j=ay then t1:=t1+gunler[j]-gun
else
if (yil mod 4=0) and (j=2) Then t1:=t1+29
else t1:=t1+gunler[j];
end;
writeln ('Yıl Başından Yıl Sonuna Kadar Geçen Gün Sayısı :',t1);
{aradaki yıllara düşen gün sayısın hesapla }
for i:=yil+1 to yil2-1 do
begin
if i mod 4=0 then t2:=t2+366 else t2:=t2+365;
end;
Writeln('İki yıl arasındaki fark :',t2);
{yıl başından o tarihe kadar olan kısmı hesaplar}
for j:=1 to ay2 do
begin
if j=ay2 then t3:=t3+gun2
else
if (yil2 mod 4=0) and (j=2) Then t3:=t3+29
else t3:=t3+gunler[j];
end;
Writeln('Son Yılın Başından o aya kadar geçen gün :',t3);
end
else { AYNI YIL İÇİNDEKİ İKİ TARİH FARKINI HESAPLA }
begin
t4:=gunler[ay]-gun;
for j:=ay+1 to ay2 do
begin
if j=ay2 then t4:=t4+gun2
else
if (yil mod 4=0) and (j=2) Then t4:=t4+29
else t4:=t4+gunler[j];
end;
Writeln('Aynı yıl içinde geçen gun sayısı :',t4);
end;
t:=t1+t2+t3+t4;
Writeln ('Toplam Gun Sayısı :',t);
readln;
end.
Download

Gökhan POLAT 2 TARİH ARASINDAKİ GÜN SAYISINI BULMA