![]() |
![]() |
#1
|
|||
|
|||
![]()
Delphi’ de tarih ve zaman işlemlerinizi kolaylık ile yapabilmeniz için bir çok fonksiyon tanımlanmıştır. Aşağıda bu fonksiyonlara ait örnekler 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 dönmesine sebep olucaktır. Procedure TForm1.Button1Click(Sender; Object); var Tarih1, Tarih2 : TDate; //Tarih içerikli 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 döner 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 için kullanılan bir fonksiyondur. Eşitlik durumunda geriye yine sıfır dönecektir. 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 döndürecektir. 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 öğrenebilirsiniz. Fonksiyondan geriye dönen değer tam sayı tipli olacağı için IntToStr tip dönüşüm fonksiyonunu kullanarak yazdırabilirsiniz. Procedure TForm1.Button1Click(Sender; Object); begin Caption:= IntToStr(CurrentYear); end; Date: Parametre içermeyen bu fonksiyon ile aktif tarihi yazdırabilirsiniz. Döndürdüğü değer tarih içerikli olacağı için yazdırmak için DateToStr tip dönüşümünü kullanmanızı gerektirecektir. Procedure TForm1.Button1Click(Sender; Object); begin Caption:= DateToStr(Date); end; Aktif tarihe gün ekleme işlemlerini yine bu fonksiyon ile yapmanız mümkün olabilmektedir. Aşağıda bu husus örneklendirilmiştir. Örneğ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 gün ekle Caption:= DateToStr(Tarih); // Pc tarihinin 10 gün ilerisi end; Aynı şekilde önceki günlere dönmek için 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ı açısından aşağıdaki örneğ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 içerikli değişkenin değerini stringe çevirmek için kullanılır. Bilhassa kontroller üzerinde tarih içeriklerinin 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 dönüştürmek için 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 dönüşümünü gerçekleş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 gününe ait olduğunu hesaplayabilen bir fonksiyondur. Geriye döndürdüğü değer 1 ile 7 arasında ki sayısal ifadelerdir. 1 olması Pazar 7olması cumartesi gününe 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; // Bugünkü tarih Deger := DayOfWeek(Tarih); // Aktar If Deger=1 Then Caption := ‘Pazartesi’ else If Deger=2 Then Caption := ‘Salı’ else If Deger=3 Then Caption := ‘Çarş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 kaçıncı günü olduğunu hesaplayan bir fonksiyondur. Tam sayı tipinde bir değer döndürdüğü için yazdırmak isterseniz IntToStr fonksiyonunu kullanmalısınız. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDateTime; Deger : Integer; begin Tarih := Date; // Bugünkü tarih Deger := DayOf(Tarih); // Kaçıncı gün 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 kaçıncı günü olduğunu hesaplayan bir fonksiyondur. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDateTime; Deger : Integer; begin Tarih := Date; // Bugünkü tarih Deger := DayOfTheMonth(Tarih); // Kaçıncı gün Caption := IntToStr(Deger); // Eğer ayın 10 u ise 10 yazar end; Fonksiyondan geriye dönen değer tam sayı tipli bir değişkene aktarılabilir. Dolayısı ile form üzerindeki her hangi bir kontrolde yazdırabilmesi için IntToStr fonksiyonu ile tip dönüştürme işlemi uygulamanız gerekmektedir. Yukarıdaki örneği dikkatlice inceleyiniz. DayOfTheWeek(Tarih_Zaman); Parametre ile girilen Tarih_Zaman değişkenine ait değerin haftanın kaçıncı gününe karşılık geldiğini hesaplayan bir fonksiyondur. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDateTime; Deger : Integer; begin Tarih := Date; // Bugünkü tarih Deger := DayOfTheWeek(Tarih); // Kaçıncı gün 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 kaçıncı gününe karşılık geldiğini hesaplayan bir fonksiyondur. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDateTime; Deger : Integer; begin Tarih := Date; // Bugünkü tarih Deger := DayOfTheYear(Tarih); // Kaçıncı gün 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 gün farkını hesaplayan fonksiyondur. Fonksiyonun geriye döndürdüğü değer bir tam sayı olduğu için yazdırmak için IntToStr fonksiyonundan faydalanmalısınız. Aşağıda bu fonksiyon örneklendirilmiş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 kaç gün var Caption := IntToStr(Sayi); end; Bu fonksiyonda değişkenlerin yerleri önem arz etmektedir. Hangisinin büyük olduğuda önemli değildir, sonuçta pozitif değeri döndürmektedir. |
|
|