Delphi’ de tarih ve zaman işlemlerinizi kolaylık ile yapabilmeniz icin bir cok fonksiyon tanımlanmıştır. Aşağıda bu fonksiyonlara ait ornekler detaylıca incelemeye alınmıştır.

CompareDate(Tarih1 , Tarih2);

Parametre olarak girilen iki tarihin eşit olup olmadığını kontrol edebilen bir fonksiyondur. Girilen tarihlerin eşit olması bu fonksiyondan geriye 0 değerinin donmesine sebep olucaktır.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih1, Tarih2 : TDate; //Tarih icerikli değişken tanımlanıyor.
begin
Tarih1 := StrToDate(Edit1.Text); // Tarihsel değişkene aktarılıyor
Tarih2 := StrToDate(Edit2.Text); // Tarihsel değişkene aktarılıyor
If CompareDate(Tarih1, Tarih2)=0 Then // İki tarih eşitse 0 doner
Caption := ‘Girilen iki tarih eşit’
else
Caption:= ‘Tarihler eşit değil’;
end;


CompareDate(Tarih1 , Tarih2);

Parametre olarak girilen iki değerin tarih ve zamanla beraber eşit olup olmadığını kontrol etmek icin kullanılan bir fonksiyondur. Eşitlik durumunda geriye yine sıfır donecektir.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih1, Tarih2 : TDateTime;
begin
Tarih1 := StrToDateTime(Edit1.Text);
Tarih2 := StrToDateTime(Edit2.Text);
If CompareDate(Tarih1, Tarih2)=0 Then
Caption := ‘Girilen iki tarih ve saat eşit’
else
Caption:= ‘Tarihler eşit değil’;
end;


CompareTime(Zaman1 , Zaman2);

Parametre olarak girilen iki değişkenin aynı zamana ait olup olmadıklarını hesaplayabilen bir fonksiyondur. Eşitlik durumunda yine 0 dondurecektir.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih1, Tarih2 : TTime;
begin
Tarih1 := StrToTime(Edit1.Text);
Tarih2 := StrToTime(Edit2.Text);
If CompareDate(Zaman1 , Zaman2)=0 Then
Caption := ‘Girilen iki zaman eşit’
else
Caption:= ‘Zamanlar eşit değil’;
end;



CurrentYear:

Parametre kullanmayan bu fonksiyon ile aktif tarihin yılını kolayca oğrenebilirsiniz. Fonksiyondan geriye donen değer tam sayı tipli olacağı icin IntToStr tip donuşum fonksiyonunu kullanarak yazdırabilirsiniz.

Procedure TForm1.Button1Click(Sender; Object);
begin
Caption:= IntToStr(CurrentYear);
end;


Date:

Parametre icermeyen bu fonksiyon ile aktif tarihi yazdırabilirsiniz. Dondurduğu değer tarih icerikli olacağı icin yazdırmak icin DateToStr tip donuşumunu kullanmanızı gerektirecektir.

Procedure TForm1.Button1Click(Sender; Object);
begin
Caption:= DateToStr(Date);
end;

Aktif tarihe gun ekleme işlemlerini yine bu fonksiyon ile yapmanız mumkun olabilmektedir. Aşağıda bu husus orneklendirilmiştir. Orneğin yapılış tarihinin 03/11/2005 olduğunu da belirtelim.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : Tdate;
begin
Tarih := Date+10; // Aktif tarihe 10 gun ekle
Caption:= DateToStr(Tarih); // Pc tarihinin 10 gun ilerisi
end;

Aynı şekilde onceki gunlere donmek icin de ( – ) kullanabilirsiniz.


DateOf(TarihZaman);

Parametre olarak girilen tarih zaman değişkeninin, zaman kısmını atarak sadece tarih değerinin elde edilmesini sağlar.

Procedure TForm1.Button1Click(Sender; Object);
var
TarihZaman : TDateTime;
begin
TarihZaman := Now; // Tarih ve zamanı beraber tutan değişken
Edit2.Text := DateTimeToStr(DateOf(TarihZaman));
end;

Fonksiyonun daha iyi anlaşılması acısından aşağıdaki orneği inceleyip aradaki farka dikkat ediniz.

Procedure TForm1.Button1Click(Sender; Object);
var
TarihZaman : TDateTime;
begin
TarihZaman := Now; // Tarih ve zamanı beraber tutan değişken
Edit1.Text := DateTimeToStr(TarihZaman); // Mesela 11.07.2005 14:00:00 yazar
Edit2.Text := DateTimeToStr(DateOf(TarihZaman)); // Mesela 11.07.2005 yazar
end;



DateTimeToStr(Tarih1 , Tarih2);

Parametre olarak girilen tarih-zaman icerikli değişkenin değerini stringe cevirmek icin kullanılır. Bilhassa kontroller uzerinde tarih iceriklerinin yazdırılmasında kullanılır.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Sonuc : AnsiString;
begin
Tarih := Now;
Sonuc := DateTimeToStr(Tarih); // Aktif tarih ve saati yaz
Caption:= Sonuc;
end;


DateToStr(Tarih);

Parametreyle girilen tarih değişkenini string tipe donuşturmek icin kullanılan bir fonksiyondur. Eğer DateTime tipli bir değişken değeri aktarılırsa hata vermemekle beraber, sadece tarih kısmıyla ilgili tip donuşumunu gercekleştirecektir.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Sonuc : AnsiString;
begin
Tarih := Now;
Sonuc := DateToStr(Tarih); // Aktif tarih yaz
Caption:= Sonuc;
end;


DayOfWeek(Tarih);

Parametreyle girilen tarih değişkenin değerinin haftanın hangi gunune ait olduğunu hesaplayabilen bir fonksiyondur. Geriye dondurduğu değer 1 ile 7 arasında ki sayısal ifadelerdir. 1 olması Pazar 7olması cumartesi gunune karşılık gelmektedir. Basit bir dallandırma yaparak sonuca ulaşabilirsiniz.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDate;
Deger : Integer;
begin
Tarih := Date; // Bugunku tarih
Deger := DayOfWeek(Tarih); // Aktar
If Deger=1 Then Caption := ‘Pazartesi’ else
If Deger=2 Then Caption := ‘Salı’ else
If Deger=3 Then Caption := ‘Carşamba’ else
If Deger=4 Then Caption := ‘Perşembe’ else
If Deger=5 Then Caption := ‘Cuma’ else
If Deger=6 Then Caption := ‘Cumartesi’ else
If Deger=7 Then Caption := ‘Pazar’;
end;


DayOf(Tarih_Zaman);

Parametre ile girilen Tarih_Zaman değişkeninde ayın kacıncı gunu olduğunu hesaplayan bir fonksiyondur. Tam sayı tipinde bir değer dondurduğu icin yazdırmak isterseniz IntToStr fonksiyonunu kullanmalısınız.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Deger : Integer;
begin
Tarih := Date; // Bugunku tarih
Deger := DayOf(Tarih); // Kacıncı gun
Caption := IntToStr(Deger); // Eğer ayın 10 u ise 10 yazar
end;



DayOfTheMonth(Tarih_Zaman);

Parametre ile girilen Tarih_Zaman değişkeninde ayın kacıncı gunu olduğunu hesaplayan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Deger : Integer;
begin
Tarih := Date; // Bugunku tarih
Deger := DayOfTheMonth(Tarih); // Kacıncı gun
Caption := IntToStr(Deger); // Eğer ayın 10 u ise 10 yazar
end;

Fonksiyondan geriye donen değer tam sayı tipli bir değişkene aktarılabilir. Dolayısı ile form uzerindeki her hangi bir kontrolde yazdırabilmesi icin IntToStr fonksiyonu ile tip donuşturme işlemi uygulamanız gerekmektedir. Yukarıdaki orneği dikkatlice inceleyiniz.



DayOfTheWeek(Tarih_Zaman);

Parametre ile girilen Tarih_Zaman değişkenine ait değerin haftanın kacıncı gunune karşılık geldiğini hesaplayan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Deger : Integer;
begin
Tarih := Date; // Bugunku tarih
Deger := DayOfTheWeek(Tarih); // Kacıncı gun
Caption := IntToStr(Deger); // Eğer ayın 10 u ise 10 yazar
end;




DayOfTheYear(Tarih_Zaman);

Parametre ile girilen Tarih_Zaman değişkenine ait değerin yılın kacıncı gunune karşılık geldiğini hesaplayan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Deger : Integer;
begin
Tarih := Date; // Bugunku tarih
Deger := DayOfTheYear(Tarih); // Kacıncı gun
Caption := IntToStr(Deger); // Eğer ayın 10 u ise 10 yazar
end;



DaysBetween(Tarih1 , Tarih2);

Parametre ile girilen iki tarih değişkeni arasındaki gun farkını hesaplayan fonksiyondur. Fonksiyonun geriye dondurduğu değer bir tam sayı olduğu icin yazdırmak icin IntToStr fonksiyonundan faydalanmalısınız. Aşağıda bu fonksiyon orneklendirilmiştir.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih1, Tarih2 : TDateTime;
Sayi : Integer;
begin
Tarih1 := StrToDateTime(Edit1.Text); // İlk tarih değer
Tarih2 := StrToDateTime(Edit2.Text); // İkinci tarih değer
Sayi := DaysBetween(Tarih1, Tarih2); // Aralarında kac gun var
Caption := IntToStr(Sayi);
end;

Bu fonksiyonda değişkenlerin yerleri onem arz etmektedir. Hangisinin buyuk olduğuda onemli değildir, sonucta pozitif değeri dondurmektedir.





DaysIncMonth(Tarih_Zaman);

Parametre ile girilen Tarih_Zaman değişken değerinin ait olduğu ayın kac gun cektiğini hesaplayabilen bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Sayi : Integer;
begin
Tarih := Date; // Aktif tarih
Sayi := DaysInMonth(Tarih); // Bu ay kac gun cekiyor
Caption := IntToStr(Sayi); // 7. Ay olduğunu farzedelim, 31 gun vardır.
end;

Fonksiyondan geriye donen değer, tam sayı tipli bir değişkene aktarılabilir. Şayet bu değeri yazdırmak isterseniz IntToStr fonksiyonunu kullanmalısınız.



DaysIncAMonth(Tam_Sayi , Tam_Sayi2);

Birinci parametre ile girilen yıla ait, ikinci parametreyle girilen ayın kac gun cektiğini hesaplayabilen bir fonksiyondur. Fonksiyondan geriye donen değer bir tam sayı olduğu icin IntToStr fonksiyonu kullanılarak yazdırılabilir.

Procedure TForm1.Button1Click(Sender; Object);
var
Sayi : Integer;
begin
Sayi := DaysInAMonth(2000,3); // 2000 yılının 3. ayı kac gun
Caption := IntToStr(Sayi); // 31 yazar
end;



DaysIncAYear(Tam_Sayi);

Parametre ile bilertilen yılın kac gun cektiğini hesaplayabilen bir fonksiyondur. Tam sayı tipli bir fonksiyon dondurduğu icin IntToStr fonksiyonu ile kolayca yazdırılabilir.

Procedure TForm1.Button1Click(Sender; Object);
var
Sayi, Yil : Integer;
Begin
Yil := 2005;
Sayi := DaysInAYear(2005); // 2005 yılı kac gun
Caption := IntToStr(Sayi); // 365 yazar
end;


DaysInYear(Tam_Sayi);

Parametre ile belirtilen tarih icerikli değişken değerinin ait olduğu yılın kac gun cektiğini hesaplayan fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Sayi : Integer;
Begin
Tarih := Date;
Sayi := DaysInYear(Tarih); // Tarih kac gun
Caption := IntToStr(Sayi); // 365 yazar
end;


DaySpan(Tarih1 , Tarih2);

Parametre ile girilen iki tarihsel değişken arasındaki gun farkını hesaplayan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih1, Tarih2 : TDateTime;
Sonuc : Double;
Begin
Tarih1 := StrToDate(’01.04.2003’);
Tarih2 := StrToDate(’02.03.2003’);
Sonuc := DaySpan(Tarih1, Tarih2); // Kac gun fark var
Caption := FloatToStr(Sonuc);
end;



DecodeDate(Tarih, Yil, Ay, Gun);

İlk parametre ile girilen tarihin yıl, ay, gun değerlerini hesaplayarak ikinci, ucuncu ve dorduncu değişkenlere aktarılır.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Yil, Ay, Gun : Word; //Word olmak zorunda
Begin
Tarih := StrToDate(’10.07.2003’);
DecodeDate(Tarih, Yil, Ay, Gun); // Tarihi parcalara ayır
Caption := ‘Yıl : ’+InttoStr(Yil]’ Ay : ’+IntToStr(Ay]’ Gun : ‘+IntToStr(Gun);
end;



DecodeDateDay(Tarih, Yil, Gun);

Birinci parametre ile belirtilen tarih değişkeninin yılını ikinci parametreye, yılın kacıncı gunu olduğunu da ucuncu parametreye aktaran bir prosedurdur.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Yil, Ay : Word; //Word olmak zorunda
Begin
Tarih := StrToDate(’10.07.2003’);
DecodeDateDay(Tarih, Yil, Ay);
Caption := ‘Yıl : ’+InttoStr(Yil]’ Gun : ‘+IntToStr(Ay);
end;




DecodeDateMonthWeek(Tarih, Yil, Ay, Kacıncı_Hafta, Haftanın_Kacıncı_Gunu);

Birinci parametre ile verilen tarih değişkenine ait yıl değerini, ikinci parametreye, ay değerini değerini ucuncu parametreye, ayın kacıncı haftası olduğunu dorduncu parametreye ve haftanın kacıncı gunu olduğunu beşinci parametreye aktaran bir prosedurdur.

Fonksiyon tanımlarına dikkat ederseniz bazılarının function olarak değil de prosedur olarak tanıdıklarını goreceksiniz Biz hepsini fonksiyon başlığı altında veriyoruz. Gercekte de oyle olması gerekir. Cunku bu prosedurlerin bir coğu geriye birden fazla değer dondurdukleri icin (daha once bu konular detaylı olarak anlatılmıştır) fonksiyon olarak değil de prosedur olarak tanımlanmaları gerekmektedir.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Yil, Ay, Hafta, Deger : Word; //Word olmak zorunda
Begin
Tarih := StrToDate(’10.07.2003’);
DecodeDateMonthWeek(Tarih, Yil, Ay, Hafta, Değer);
Caption := ‘Yıl : ’+InttoStr(Yil]’ Ay : ‘+IntToStr(Ay]’ Ayın Kacıncı Haftası : ’+IntToStr(Hafta]’ Haftanın Kacıncı Gunu : ’+IntToStr(Deger);
end;


DecodeTime(Zaman, Saat, Dakika, Saniye, Salise);

Birinci parametre ile girilen zaman değişkeninin, saat değerini ikinci parametreye, dakika değerini ucuncu parametreye, saniye değerini dorduncu parametreye ve salise değeri de beşinci parametreye aktaranbir prosedurdur.

Procedure TForm1.Button1Click(Sender; Object);
var
Zaman : TDateTime;
Saat, Dakika, Saniye, Salise : Word; //Word olmak zorunda
Begin
Zaman := Now;
DecodeTime(Zaman, Saat, Dakika, Saniye, Salise);
Caption := ‘Saat : ’+InttoStr(Saat]’ Dakika : ‘+IntToStr(Dakika]’ Saniye : ’+IntToStr(Saniye]’ Salise : ’+IntToStr(Salise);
end;






EncodeDate(Yil, Ay, Gun);

Uc parametre ile belirtilen tam sayıları birleştirerek tarih değeri oluşturabilen bir fonksiyondur. Fonksiyondan geriye donen değer tarihsel icerikli olduğu icin yazdırılmak istenirse DateTimeToStr tip donuşturme fonksiyonundan faydalanmalısınız.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Yil, Ay, Gun : Word; //Word olmak zorunda
Begin
Tarih := 2003;
Ay := 7;
Gun := 10;
Tarih := EncodeDate(Yil, Ay, Gun);
Caption := DateTimeToStr(Tarih); // 10.07.2003 yazar
end;



EncodeDateDay(Yıl, Değer);

Birinci parametre ile belirtilen (tam sayı) yıla, ikinci parametreyle belirtilen kadar (tam sayı) gun ekler. Sonuc tarihsel bir değer icerdiği icin DateTimeToStr tip donuşturme fonksiyonu kullanılarak yazdırılabilir.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Yil, Deger : Word; //Word olmak zorunda
Begin
Tarih := EncodeDateDay(2003, 35); // 35 Gun ekle
Caption := DateTimeToStr(Tarih); // 04.02.2003
end;


EncodeDateMonthWeek(Yıl, Ay, Hafta, Gun);

Belirtilen parametreleri birleştirerek yeni bir tarih değeri elde eder. Mesela 2003 yılının 3. ayının 2. haftasının 4. gunu vs. fonksiyondan geriye donene değer tarihsel veri icereceği icin yazdırmak ancak DateTimeToStr tip donuşturme fonksiyonu sayesinde olabilcektir.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Yil, Ay, Deger : Integer;
Begin
Tarih := EcodeDateMonthWeek(2003, 4, 2, 2);
Caption := DateTimeToStr(Tarih); // 08.04.2003 yazar
end;


EncodeDateWeek(Yıl , Hafta);

Parametreyle belirtilen yıla, yine ikinci parametre kadar hafta ekler. Geriye donen değer tarih icerikli olacaktır. Yazdırmak icin DateTimeToStr fonksiyonundan faydalanmalısınız.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
begin
Tarih := EncodeDateWeek(2003, 3); // 3. Haftanın ilk gunu
Caption := DateTimeToStr(Tarih); //13.01.2003 yazar
end;


EncodeDateOfWeekInMonth(Yıl , Ay, Hafta, Gun);

Parametre ile belirtilen ay, hafta, gun değerlerini yıla ekleyerek yeni bir tarih hesaplar. Fonksiyondan geriye donen değer tarih icerikli olacağı icin DateTimeToStr tip donuşturme işlemi sayesinde yazdırılabilir.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
begin
Tarih := EncodeDateOfWeekInMonth(2003, 2, 2, 3); // 2. Ayın 2. haftasının 3. gunu
Caption := DateTimeToStr(Tarih); //12.02.2003 yazar
end;






EncodeTime(Zaman, Saat, Dakika, Saniye, Salise);

Parametre ile belirtilen değeri birleştirerek yeni bir zaman değeri turetir. Fonksiyondan geriye zaman icerikli bir değer doneceği icin TimeToStr tip donuşturme fonksiyonu kullanılarak yazdırılabilir.

Procedure TForm1.Button1Click(Sender; Object);
var
Zaman : TDateTime;
begin
Zaman := EncodeTime(16, 25, 30, 40);
Caption := TimeToStr(Zaman); // 16:25:30 yazar
end;


EndOfADay(Yıl, Deger);

Parametre ile belirtilen yıl değişkenine, yine ikinci parametreyle belirtilen değere kadar gun ekler. Fonksiyondan donen değer tarihsel icerikli olduğu icin DateToStr tip donuşturme fonksiyonu kullanılarak yazdırılabilir. Geriye donen değeri DateTimeToStr tip donuşturme fonksiyonu ile yazdırmaya kalkarsanız, zamanla beraber yazılacaklarını belirtmek isterim.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
begin
Tarih := EndOfADay(2003, 9); // 9 Gun ekle
Caption := DateToStr(Tarih); // 09.01.2003 yazar
end;


EndOfAMonth(Yıl, Ay);

Birinci parametre ile belirtilen yıl değişkenine, ikinci parametre ile belirlenen değer kadar ayı ekler yeni bir tarih değeri bulur. Fonksiyondan geriye donen değer tarihsel icerikli olduğu icin DateTimeToStr tip donuşturme fonksiyonu ile yazdırılmalıdır.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
begin
Tarih := EndOfAMonth(2003, 7); // 7 Ay ekle
Caption := DateToStr(Tarih); // 31.07.2003 yazar
end;


EndOfAWeek(Yıl, Hafta);

Birinci parametre ile belirtilen yıla ikinci parametre ile belirtilen haftanın en son gununu hesaplayan fonksiyondur. Fonksiyondan geriye donen değer tarihsel icerikli olduğu icin yazdırmak icin DateToStr fonksiyonundan faydalanılmıştır.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
begin
Tarih := EndOfAWeek(2003, 3); // 3. Haftanın en son gunu
Caption := DateToStr(Tarih); // 19.01.2003 yazar
end;
EndOfAYear(Yıl);

Parametre ile verilen yıla ait en son gunun tarihini hesaplayan fonksiyondur. Fonksiyondan geriye donen değer tarihsel icerikli olduğu icin DateToStr tip donuşturme fonksiyonu sayesinde yazdırılabilir.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
begin
Tarih := EndOfAYear(2003); // 3. Yılının en son gunu
Caption := DateToStr(Tarih); // 31.12.2003 yazar
end;


FormatDateTime(Stil , Tarih);

İkinci parametre ile belirtilen tarihi, birinci parametre ile belirtilen formatlı hale donuşturur. Fonksiyondan donen değer String tipte olduğu icin direk yazdırılabilir.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDate;
Sonuc : AnsiString;
begin
Tarih := Date;
Sonuc := FormatDateTime(‘dddd, mmmm d,yyyy’, Tarih);
Caption := Sonuc; // Perşembe Temmuz 10 2003 yazar
end;

Tarihsel icerikli değişkenleri formatlamak icin kullanabileceğiniz bayağı bir seceneğiniz var. Aşağıda bu seceneklerden bazılarını sizlere vermeye calışacağım.

‘dddd, mmmm d, yyyy’ Perşembe Temmuz 10 2003 gibi
‘mmmm d, yyyy’ Temmuz 10 2003 gibi
‘mmmm yyyy’ Temmuz 2003 gibi
‘yyyy’ 2003 gibi
‘dddd, d, mmmm yyyy’ Perşembe 10 Temmuz 2003 gibi
‘d, mmmm yyyy, dddd’ 10 Temmuz 2003 Gibi



IncAMonth(Yıl, Ay, Gun);

Uc parametreyi birleştirerek oluşturacağı tarih değerinden, bir ay sonrasının tarihini hesaplayan fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDateTime;
Yil, Ay, Gun : Word;
begin
Yil := 2003;
Ay := 7;
Gun := 10;
IncAMonth(Yil, Ay, Gun); // Ay’ ı artır.
Caption := IntToStr(Yil]’ ’+IntToStr(Ay]’ ’+IntToStr(Gun);
end;





IncDay(Tarih);

Parametre ile girilen tarih değerini, gun olarak bir artırmak icin kullanılan fonksiyondur. Fonksiyondan geriye donen değer tarihsel icerikli olacağı icin yazdırabilmeniz ancak DateToStr fonksiyonu sayesinde olacaktır.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDate;
begin
Tarih := Date;
Tarih := IncDay(Tarih); // Tarihi bir gun artır
Caption := DateToStr(Tarih);
end;




IncMonth(Tarih);

Parametre olarak girilen tarih icerikli değişken iceriğindeki ayı bir artırarak yeni bir tarih değeri hesaplar. Fonksiyondan geriye donen değer tarih icerikli olacağı icin yazdırmanız ancak DateToStr fonksiyonundan faydalanmalısınız.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDate;
begin
Tarih := Date;
Tarih := IncMonth(Tarih); // Tarihi bir ay artır
Caption := DateToStr(Tarih);
end;




IncWeek(Tarih);

Parametre olarak girilen tarih icerikli değişkenin değerini bir hafta artırarak yeni bir tarih hesaplar. Fonksiyondan geriye donen değer tarih icerikli olacağı icin, yazdırmanız ancak DateToStr fonksiyonu tarafından olacaktır.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDate;
begin
Tarih := Date;
Tarih := IncWeek(Tarih); // Haftayı bir artır
Caption := DateToStr(Tarih);
end;



IncYear(Tarih);

Parametre olarak girilen tarih icerikli değişkenin değerini bir yıl artırarak yeni bir tarih hesaplar. Fonksiyondan geriye donen değer tarih icerikli olacağı icin, yazdırmanız ancak DateToStr tip donuşturme fonksiyonu sayesinde yazdırabilirsiniz.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDate;
begin
Tarih := Date;
Tarih := IncYear(Tarih); // Yılı bir artır
Caption := DateToStr(Tarih);
end;






IsInLeapYear(Yıl);

Parametre ile girilen tarih icerikli değişken değerinin (dort yılda bir oluşan 366 gun ceken yıl) 366 gun cekip cekmediğini anlayabilen bir fonksiyondur. Fonksiyondan geriye donen değer True veya false olabileceği icin ufak bir sonuc dallanmasıyla sonuca ulaşabilirsiniz. Şayet belirttiğiniz tarih 366 gun cekiyorsa sonuc True olacaktır.

Procedure TForm1.Button1Click(Sender; Object);
var
Tarih : TDate;
Sonuc : Boolean;
begin
Tarih := Date;
Sonuc := IsInLeapYear(Tarih); // 366 gun mu cekiyor
If Sonuc=True Then
Caption := ‘366 Gun ceker’
Else
Caption := ‘365 Gun ceker’;
end;





IsLeapYear(Yıl);

Parametre olarak girilen tarihin 365 gun cekip cekmediğini hesaplayan diğer bir fonksiyondur. Yukarıdakinden tek farkı parametre olarak tarih değişkeni değilde, tam sayı tip değişken kullanılmasıdır.

Procedure TForm1.Button1Click(Sender; Object);
var
Sonuc : Boolean;
begin
Sonuc := IsInLeapYear(Tarih); // 366 gun mu cekiyor
If Sonuc=True Then
Caption := ‘366 Gun ceker’
Else
Caption := ‘365 Gun ceker’;
end;




IsToDay(Tarih);

Parametre olarak girilen tarih değişkeninin, bugunun tarihine eşit olup olmadığını kontrol eden bir fonksiyondur. Fonksiyondan geriye donen değer Boolean tip bir değişkende saklanabilir.Bu değişkenin değerinin True olması girilen tarihe bugune eşit olduğu anlamını taşımaktadır.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih := TDate;
Sonuc : Boolean;
Begin
StrToDate(Edit1.Text);
Sonuc := IsToDay(Tarih);
If Sonuc Then
Caption := ‘Girdiğiniz tarih bu gune eşit’;
end;

Fonksiyondan true feya false değerinin donduğunu hatırlamakta fayda var.



IsValidDate(Yıl, Ay, Gun);

Parametre olarak girilen değişken değerlerinin sırasıyla tarih oluşturup oluşturamayacağını hesaplayabilen bir fonksiyondur. (ay değerinin 12 den buyuk ve gun değerinin 31 den buyuk olması gibi) Fonksiyondan geriye True değerinin donmesi değişkenlerin tarih oluşturabileceği anlamını taşımaktadır.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih := TDate;
Yil, Ay, Gun : Word;
Sonuc : Boolean;
Begin
Sonuc := IsValidDate(2003, 10, 10);
If Sonuc=True Then
begin
Tarih := EncodeDate(2003, 10, 5);
Caption := DateToStr(Tarih);
end
else
Caption := ‘Girdiğiniz değerden tarih oluşturulamaz’;
end;





MonthOf(Tarih);

Parametre ile belirtilen tarih değişkeninin hangi aya ait olduğunu hesaplayan fonksiyondur. Fonksiyondan geriye donen değer tam sayı tipli bir değişkene aktarılabilir.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih := TDate;
Deger : Word;
begin
Tarih := Date+5;
Sonuc := MonthOf(Tarih);
Caption := IntToStr(Deger);
end;





MonthOfTheYear(Tarih);

Parametre ile tarih değişken değerinin hangi aya ait olduğunu hesaplayan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih := TDate;
Deger : Word;
begin
Tarih := Date+5; // Şu an ki tarih 11/07/2003
Sonuc := MonthOfTheYear(Tarih);
Caption := IntToStr(Deger); // 7 Yazar
end;





MonthsBetween(Tarih1, Tarih2);

Parametre olarak belirtilen tarih değişkenleri arasında kac ay olduğunu hesaplayan fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih1, Tarih2 := TDate;
Fark : Integer;
begin
Tarih1 := StrToDate(’04.05.2002’);
Tarih2 := StrToDate(’04.08.2003’);
Fark := MontsBetween(Tarih1, Tarih2);
Caption := IntToStr(Fark); // 15 Yazar
end;

Fonksiyondan geriye donen değer bir tam sayı olduğu icin IntToStr tip donuşturme fonksiyonu kullanılarak fark kolayca yazdırılabilir. Yapılan hesaplamaya dikkat edicek olursanız girilen iki tarih arasında ki ay sayısı bulunmaktadır.







Now();

O gune ait tarih ve saati yazdırabilen bir fonksiyondur. Fonksiyondan geriye donen Tarih_Zaman icerikli veri doneceği icin DateTimeToStr tip donuşturme fonksiyonu kullanılarak yazdırabilmektedir.

Procedure TForm1.Button1Click(Sender; Object);
Var
TarihZaman : TDateTime;
begin
TarihZaman := Now; // Tarih ve zamanı beraber tutan değişken
Caption := DateTimeToStr(TarihZaman); // 15/03/2003 19:10:24 Yazar
end;



NthDayOfWeek(Tarih);

Parametre olarak girilen tarih değişken değerinin, ayın kacıncı haftasında olduğunu hesaplayan fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
Deger : Word;
begin
Tarih := Now; // 11/07/2003
Deger := NthDayOfWeek(Tarih); Ayın kacıncı haftası
Caption := IntToStr(Deger); // 2 Yazar
end;

Fonksiyondan tam sayı tipli bir değer doneceği icin IntToStr tip donuşturme fonksiyonu kullanarak yazdırılabilir.


RecodeDate(Tarih1, Yil, Ay, Gun);

2.inci, 3.uncu, 4.uncu parametre ile belirlenen değerleri birleştirip, ilk parametre formatında yeni bir tarih değeri oluşurur. Fonksiyondan geriye donen değer Tarih_Zaman icerikli olacağı icin DateTimeToStr fonksiyonu kullanılarak yazdırılabilir.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih1, Tarih2 : TDateTime;
Yil, Ay, Gun : Word;
begin
Tarih1 := Now; // 11/07/2003
Yil := 2002;
Ay := 5;
Gun := 14;
Tarih2 := RecodeDate(Tarih1, Yil, Ay, Gun);
Caption := DateTimeToStr(Tarih2); // 14/05/2002 Yazar
end;


RecodeYear(Tarih, Yil);

İkinci parametre ile belirtilen yıl değerini, birinci parametredeki yılın yerine yazarak yeni bir tarih hesaplar.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih1, Tarih2 : TDateTime;
Yil : Word;
begin
Tarih1 := Now; // 11/07/2003
Yil := 1999;
Tarih2 := RecodeYear(Tarih1, Yil);
Caption := DateTimeToStr(Tarih2); // 11/07/1999 Yazar
end;

Fonksiyondan geriye donen değer, tarihsel icerik icerdiği icin herhangi bir kontrolun uzerinde (kullanıcıya gostermek amaclı) yazdırmak icin DateTimeToStr fonksiyonundan faydalanmalısınız. Dilerseniz DateToStr sadece tarih kısmını (saat haric) yazdırabilirsiniz.




ReplaceDate(Tarih1, Tarih2);

Parametre olarak belirtilen iki tarihin değerlerinin birbiriyle değişmesini sağlayan bir prosedurdur.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih1, Tarih2 : TDateTime;
begin
Tarih1 := StrToDate(’01.02.2003’);
Tarih2 := Date; // 11/07/2003
ReplaceDate(Tarih1, Tarih2); // Tarihleri değiştir.
Caption := DateTimeToStr(Tarih2); // 11/07/1999 Yazar
end;




StartOfADay(Tarih, Ay);

Parametreyle belirtilen yıla, yine ikinci parametreyle belirtilen sayı kadar ay ekler.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StartOfADay(2003, 6);
Caption := DateToStr(Tarih); //06/01/2003 yazar
end;

Fonksiyondan geriye donen değer tarihsel veri icereceği icin, kontrollerden herhangi birisinde yazdırılması icin DateToStr tip donuşturme fonksiyonundan faydalanmalısınız.

Dilerseniz aynı işlemi aşağıda ki gibi 3 parametre ile de yapabilirsiniz. Orneği dikkatlice inceleyiniz. Cunku fonksiyon opsiyonel parametre icermektedir.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StartOfADay(2003, 3, 10); // 3 Ay 10 gun ekle
Caption := DateToStr(Tarih); //10/03/2003 yazar
end;






StartOfAMonth(Yıl, Ay);

Parametreyle belirtilen yıla, yine ikinci parametreyle belirtilen adet kadar ay ekler.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StartOfAMonth(2003, 6); // 6 Ay ekle
Caption := DateToStr(Tarih); //01/06/2003 yazar
end;





StartOfAWeek(Yıl, Hafta);

Parametreyle belirtilen yıla, yine ikinci parametreyle belirtilen hafta sayısını ekler, yeni bir tarih hesaplar.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StartOfAWeek(2003, 3); // 3. Haftayı bul
Caption := DateToStr(Tarih); // 13/01/2003 yazar
end;

Fonksiyondan geriye donen değer tarihsel icerik icerdiğinden, yazdırmak icin DateToStr fonksiyonundan faydalanmalısınız.








StartOfAYear(Yıl);

Parametreyle belirtilen yılın ilk gunune ait tarih değerini donduren fonksiyondur. Fonksiyondan geriye donen değer tarihsel veri icerdiği icin yazdırmak ancak DateToStr fonksiyonu sayesinde olabilecektir.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StartOfAYear(2004);
Caption := DateToStr(Tarih); //01/01/2004 yazar
end;



StartOfTheMonth(Yıl);

Parametre ile belirtilen tarihteki ilk gunu bulmak icin kullanılan bir fonksiyondur. (ay ve yıl değişmez sadece gunun değerini 1 yapar)

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StartOfTheMonth(Date); // 11/07/2003
Caption := DateToStr(Tarih); //01/07/2003 yazar
end;



StartOfTheWeek(Tarih);

Parametre olarak girilen tarihteki ilk gununun tarihini hesaplayan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StartOfTheWeek(Date); // 11/07/2003
Caption := DateToStr(Tarih); //07/07/2003 yazar
end;

Ornekte yer alan aktif tarih 11/07/2003 tur ve Cuma gunune karşılık gelmektedir.O haftaya ait pazartesi, pazartesi gununun tarihi ise 07/0/7/2003 tur. Bu yuzden fonksiyın tarihinin bulunfuğu haftaya ait ilk gunu dondureceği icin sonuc 07/07/2003 olacaktır.




StrToDate(Stirng_Tarih);

Parametre ile verilen string değişkeni tarihsel veriye donuşturmek icin kullanılan bir fonksiyondur. Dikkat edeceğiniz husus parametre değerini tarihe ceviremez ise program hata verecektir.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StrToDate(Edit1.Text); // Tarihe cevir
Caption := DateToStr(Tarih+10); // 10 Gun ekle
end;




StrToDateDef(Tarih, Varsayılan_Tarih);

StrToDate fonksiyonu yanlış tarih girildiği zaman hata veriyordu. Bu fonksiyon ise yanlış tarih girilmesi durumunda ikinci parametre ile belirtilen değeri tarih olarak kabul edecektir.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StrToDateDef(Edit1.Text, Date); // Eğer yanlış tarih girilmişse bugunun tarihini baz al
Caption := DateToStr(Tarih);
end;

Fonksiyonun yaptığı iş Edit1 kutusuna tarihe donuşturulemeyecek bir değerin girilmesi durumunda oluşacak hatayı engellemek ve (bir cok durumda bu gunku tarihin yazılması icin bilerek yaptırılabilir) aktif tarihin işleme sokulmasını sağlamaktır.





StrToDateTime(String_Tarih);

Parametre ile belirtilen değişkenin değerini Tarih_Zaman icerikli değişkene aktarmak icin kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StrToDateTime(Edit1.Text); // Tarih ve zamana cevir
Caption := DateTimeToStr(Tarih+10); // 10 Gun ekle
end;






StrToDateTimeDef(Tarih_Zaman , Varsayılan_Tarih_Zaman);

Tip cevirme işleminde hata oluşursa (tarih girilmez veya yanlış girilirse) ikinci parametre ile verilen değeri kabul ederek işlemlere devam eden fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := StrToDateTimeDef(Edit1.Text, Now); // Eğer yanlış tarih girilirse şu anki tarih_zamanı al
Caption := DateTimeToStr(Tarih);
end;







StrToTime(String_Zaman);

Parametre ile belirtilen string veriyi zamansal değere cevirebilen bir fonksiyondur. Şayet parametre değeri zamana cevrilemiyorsa, programınız hata mesajı verecektir.

Procedure TForm1.Button1Click(Sender; Object);
Var
Zaman : TDateTime;
begin
Zaman := StrToTime(Edit1.Text); // Zamana cevir
Caption := TimeToStr(Zaman);
end;

Bu ornek icin Edit kutusuna (10:06:45) gibi saati gosteren bir değer girmelisiniz.






StrToTimeDef(String_Zaman , Varsayılan_Zaman);

StrToTime fonksiyonu Edit kutusuna yanlış değer girildiğinde kırılıyordu. Bu fonksiyonda yanlış değer (zaman cevrilemeyecek string) girilmesi durumunda ikinci parametre ile verilen zaman değeri kabul edilecek ve işlemler devam edecektir. Dolayısı ile programın kırılmasınıda engellemiş olacaksınız.

Procedure TForm1.Button1Click(Sender; Object);
Var
Zaman : TDateTime;
begin
Zaman := StrToTimeDef(Edit1.Text , Time); // Yanlış değer girilirse şu an ki zamanı kabul et
Caption := TimeToStr(Zaman);
end;








Time – GetTime :

İki fonksiyonu kullanarak da aktif saati oğrenebilirsiniz.Fonksiyondan geriye donen değer zaman icerikli olacağı icin yazdırmak icin TimeToStr tip donuşum fonksiyonunu kullanmalısınız.

Procedure TForm1.Button1Click(Sender; Object);
Var
Zaman1, Zaman2 : TDateTime;
begin
Zaman1 := Time;
Zaman2 := GetTime;
Caption := ‘Time : ’+TimeToStr(Zaman1]’ GetTime : ’+TimeToStr(Zaman2);
end;







TimeOf(Zaman);

Procedure TForm1.Button1Click(Sender; Object);
Var
Zaman1, Zaman2 : TDateTime;
begin
Zaman1 := Time;
Zaman2 := TimeOf(Now);
Caption := ‘Time : ’+TimeToStr(Zaman1]’ TimeOf : ’+TimeToStr(Zaman2);
end;





TimeToStr(Tarih_Zaman);

Parametre ile belirtilen tarih ve zamanın sadece zaman ile ilgili kısmını string e cevirip yazdırmak icin kullanılır. Aşağıdaki ornekte TimeToStr ile DateTimeToStr arasındaki fark anlatılmıştır.

Procedure TForm1.Button1Click(Sender; Object);
Var
Zaman : TDateTime;
begin
Zaman := Now;
Caption := ‘TimeToStr : ’+TimeToStr(Zaman]’ DateTimeToStr : ’+DateTimeToStr(Zaman);
end;








Today:

Aktif tarihi (saatsiz olarak) yazdırmak icin kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := Today;
Caption := DateTimeToStr(Tarih); // 11/07/2003
end;

Fonksiyondan geriye donen değer tarihsel icerikli olduğu icin DateTimeToStr (DateToStr de olur) tip donuşturme fonksiyonundan faydalanmalısınız.







Tomorrow:

Aktif tarihten (Date) bir gun sonraki tarihi bulmak icin kullanılan bir fonksiyondur. (Date+1)

Procedure TForm1.Button1Click(Sender; Object);
Var
Yarin : TDateTime;
begin
Yarin := Tomorrow;
Caption := DateTimeToStr(Yarin);
end;





WeekOf(Tarih);

Parametreyle belirtilen tarih değerinin yılın kacıncı haftasına karşılık geldiğini hesaplayan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
Hafta : Word;
begin
Tarih := Now; // Şu an ki tarih 11/07/2003
Hafta := WeekOf(Tarih); // Yılın kacıncı haftası
Caption := IntToStr(Hafta]’. Hafta’; // 28. Hafta yazar
end;




WeekOfTheMonth(Tarih);

Bu da belirtilen tarih icerisinde o aya ait hangihaftada bulunduğunu hesaplayan bir fonksiyondur. Fonksiyondan geriye donen değer tam sayı olduğu icin yazdırılma işlemi ancak IntToStr tip donuşturme fonksiyonu kullanılarak yapılabilir.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
Hafta : Word;
begin
Tarih := Now;
Hafta := WeekOfTheMonth(Tarih); // Ayın kacıncı haftası
Caption := IntToStr(Hafta);
end;





WeekBetween(Tarih1, Tarih2);

Parametre olarak girilen iki tarih arasındaki hafta sayısını hesaplayan bir fonksiyondur. Fonksiyondan geriye donen değer tam sayı olduğu icin IntToStr tip donuşturme fonksiyonu sayesinde yazdırılabilir.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih1, Tarih2 : TDateTime;
Adet : Word;
begin
Tarih1 := StrToDate(’01.03.2003’);
Tarih2 := StrToDate(’01.05.2003’);
Adet := WeeksBetWeen(Tarih1,Tarih2); // Arada kac hafta var
Caption := IntToStr(Adet]’ Hafta fark var’; // 8 Hafta fark var yazar
end;





WeeksInAYear(Yıl);

Parametre ile girilen yılın kac haftadan oluştuğunu hesaplayan fonksiyondur. Fonksiyondan geriye donen değer tam sayı tipli olduğu icin IntToStr fonksiyonu sayesinde yazdırabilirsiniz.

Procedure TForm1.Button1Click(Sender; Object);
begin
Caption := IntToStr(WeeksInAYear(2003)); // 52 yazar
end;






YearOf(Tarih);

Parametre olarak girilen tarih zaman değerinden sadece yıla ait olan bolumu donduren fonksiyondur. Fonksiyondan geriye donen değer tam sayı tipli olacağı icin yazdırmak icin IntToStr fonksiyonundan faydalanmalısınız.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
Deger : Word;
begin
Tarih := Now;
Deger := YearOf(Tarih); // Sadece yılı al
Caption := IntToStr(Deger); // 2003 yazar
end;




YearsBetween(Tarih1, Tarih2);

Parametre ile belirtilen tarihlerin arasında kac yıl bulunduğunu hesaplayan fonksiyondur. Fonksiyondan geriye donen değer tam sayı tipli olacağı icin yazdırmak icin IntToStr fonksiyonundan faydalanmalısınız.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih1, Tarih2 : TDateTime;
Deger : Integer;
begin
Tarih1 := StrToDate(’01.02.2003’);
Tarih2 := StrToDate(’01.03.2006’);
Deger := YearsBetween(Tarih1,Tarih2); // Arada kac yıl var
Caption := IntToStr(Deger); // 3 yazar
end;



Yesterday :

Bir onceki gune ait (Date-1) tarihi hesaplayabilen bir fonksiyondur. Fonksiyondan geriye donen değer tarih icerikli olacağı icin yazdırmak ancak DateToStr tip donuşturme fonksiyonu sayesinde olabilecektir.

Procedure TForm1.Button1Click(Sender; Object);
Var
Tarih : TDateTime;
begin
Tarih := Yesterday; // Bir onceki gunu al
Caption := ‘Onceki gunku tarih ’+DateToStr(Tarih);
end;
__________________