#1
|
||||
|
||||
Delphide zaman fonksiyonları
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. |
#2
|
||||
|
||||
Cvp: Delphide zaman fonksiyonları
DaysIncMonth(Tarih_Zaman);
Parametre ile girilen Tarih_Zaman değişken değerinin ait olduğu ayın kaç gün çektiğini hesaplayabilen bir fonksiyondur. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDateTime; Sayi : Integer; begin Tarih := Date; // Aktif tarih Sayi := DaysInMonth(Tarih); // Bu ay kaç gün çekiyor Caption := IntToStr(Sayi); // 7. Ay olduğunu farzedelim, 31 gün vardır. end; Fonksiyondan geriye dönen 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 kaç gün çektiğini hesaplayabilen bir fonksiyondur. Fonksiyondan geriye dönen değer bir tam sayı olduğu için 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ı kaç gün Caption := IntToStr(Sayi); // 31 yazar end; DaysIncAYear(Tam_Sayi); Parametre ile bilertilen yılın kaç gün çektiğini hesaplayabilen bir fonksiyondur. Tam sayı tipli bir fonksiyon döndürdüğü için 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ı kaç gün Caption := IntToStr(Sayi); // 365 yazar end; DaysInYear(Tam_Sayi); Parametre ile belirtilen tarih içerikli değişken değerinin ait olduğu yılın kaç gün çektiğini hesaplayan fonksiyondur. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDateTime; Sayi : Integer; Begin Tarih := Date; Sayi := DaysInYear(Tarih); // Tarih kaç gün Caption := IntToStr(Sayi); // 365 yazar end; DaySpan(Tarih1 , Tarih2); Parametre ile girilen iki tarihsel değişken arasındaki gün 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); // Kaç gün fark var Caption := FloatToStr(Sonuc); end; DecodeDate(Tarih, Yil, Ay, Gun); İlk parametre ile girilen tarihin yıl, ay, gün değerlerini hesaplayarak ikinci, üçüncü ve dördüncü 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 parçalara ayır Caption := ‘Yıl : ’+InttoStr(Yil)+’ Ay : ’+IntToStr(Ay)+’ Gün : ‘+IntToStr(Gun); end; DecodeDateDay(Tarih, Yil, Gun); Birinci parametre ile belirtilen tarih değişkeninin yılını ikinci parametreye, yılın kaçıncı günü olduğunu da üçüncü parametreye aktaran bir prosedürdür. 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)+’ Gün : ‘+IntToStr(Ay); end; DecodeDateMonthWeek(Tarih, Yil, Ay, Kaçıncı_Hafta, Haftanın_Kaçıncı_Günü); Birinci parametre ile verilen tarih değişkenine ait yıl değerini, ikinci parametreye, ay değerini değerini üçüncü parametreye, ayın kaçıncı haftası olduğunu dördüncü parametreye ve haftanın kaçıncı günü olduğunu beşinci parametreye aktaran bir prosedürdür. Fonksiyon tanımlarına dikkat ederseniz bazılarının function olarak değil de prosedür olarak tanıdıklarını göreceksiniz Biz hepsini fonksiyon başlığı altında veriyoruz. Gerçekte de öyle olması gerekir. Çünkü bu prosedürlerin bir çoğu geriye birden fazla değer döndürdükleri için (daha önce bu konular detaylı olarak anlatılmıştır) fonksiyon olarak değil de prosedür 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 Kaçıncı Haftası : ’+IntToStr(Hafta)+’ Haftanın Kaçıncı Günü : ’+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 üçüncü parametreye, saniye değerini dördüncü parametreye ve salise değeri de beşinci parametreye aktaranbir prosedürdür. 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); Üç parametre ile belirtilen tam sayıları birleştirerek tarih değeri oluşturabilen bir fonksiyondur. Fonksiyondan geriye dönen değer tarihsel içerikli olduğu için yazdırılmak istenirse DateTimeToStr tip dönüştürme 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; Gün := 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ı) gün ekler. Sonuç tarihsel bir değer içerdiği için DateTimeToStr tip dönüştürme 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 Gün ekle Caption := DateTimeToStr(Tarih); // 04.02.2003 end; EncodeDateMonthWeek(Yıl, Ay, Hafta, Gün); 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. günü vs. fonksiyondan geriye dönene değer tarihsel veri içereceği için yazdırmak ancak DateTimeToStr tip dönüştürme 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 dönen değer tarih içerikli olacaktır. Yazdırmak için DateTimeToStr fonksiyonundan faydalanmalısınız. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDateTime; begin Tarih := EncodeDateWeek(2003, 3); // 3. Haftanın ilk günü Caption := DateTimeToStr(Tarih); //13.01.2003 yazar end; EncodeDateOfWeekInMonth(Yıl , Ay, Hafta, Gün); Parametre ile belirtilen ay, hafta, gün değerlerini yıla ekleyerek yeni bir tarih hesaplar. Fonksiyondan geriye dönen değer tarih içerikli olacağı için DateTimeToStr tip dönüştürme 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. günü Caption := DateTimeToStr(Tarih); //12.02.2003 yazar end; |
#3
|
||||
|
||||
Cvp: Delphide zaman fonksiyonları
EncodeTime(Zaman, Saat, Dakika, Saniye, Salise);
Parametre ile belirtilen değeri birleştirerek yeni bir zaman değeri türetir. Fonksiyondan geriye zaman içerikli bir değer döneceği için TimeToStr tip dönüştürme 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 gün ekler. Fonksiyondan dönen değer tarihsel içerikli olduğu için DateToStr tip dönüştürme fonksiyonu kullanılarak yazdırılabilir. Geriye dönen değeri DateTimeToStr tip dönüştürme 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 Gün 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 dönen değer tarihsel içerikli olduğu için DateTimeToStr tip dönüştürme 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 gününü hesaplayan fonksiyondur. Fonksiyondan geriye dönen değer tarihsel içerikli olduğu için yazdırmak için DateToStr fonksiyonundan faydalanılmıştır. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDateTime; begin Tarih := EndOfAWeek(2003, 3); // 3. Haftanın en son günü Caption := DateToStr(Tarih); // 19.01.2003 yazar end; EndOfAYear(Yıl); Parametre ile verilen yıla ait en son günün tarihini hesaplayan fonksiyondur. Fonksiyondan geriye dönen değer tarihsel içerikli olduğu için DateToStr tip dönüştürme fonksiyonu sayesinde yazdırılabilir. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDateTime; begin Tarih := EndOfAYear(2003); // 3. Yılının en son günü Caption := DateToStr(Tarih); // 31.12.2003 yazar end; FormatDateTime(Stil , Tarih); İkinci parametre ile belirtilen tarihi, birinci parametre ile belirtilen formatlı hale dönüştürür. Fonksiyondan dönen değer String tipte olduğu için 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 içerikli değişkenleri formatlamak için kullanabileceğiniz bayağı bir seçeneğiniz var. Aşağıda bu seçeneklerden bazılarını sizlere vermeye çalış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, Gün); Üç 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, Gün : Word; begin Yil := 2003; Ay := 7; Gün := 10; IncAMonth(Yil, Ay, Gun); // Ay’ ı artır. Caption := IntToStr(Yil)+’ ’+IntToStr(Ay)+’ ’+IntToStr(Gun); end; IncDay(Tarih); Parametre ile girilen tarih değerini, gün olarak bir artırmak için kullanılan fonksiyondur. Fonksiyondan geriye dönen değer tarihsel içerikli olacağı için yazdırabilmeniz ancak DateToStr fonksiyonu sayesinde olacaktır. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDate; begin Tarih := Date; Tarih := IncDay(Tarih); // Tarihi bir gün artır Caption := DateToStr(Tarih); end; IncMonth(Tarih); Parametre olarak girilen tarih içerikli değişken içeriğindeki ayı bir artırarak yeni bir tarih değeri hesaplar. Fonksiyondan geriye dönen değer tarih içerikli olacağı için 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 içerikli değişkenin değerini bir hafta artırarak yeni bir tarih hesaplar. Fonksiyondan geriye dönen değer tarih içerikli olacağı için, 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; |
#4
|
||||
|
||||
Cvp: Delphide zaman fonksiyonları
IncYear(Tarih);
Parametre olarak girilen tarih içerikli değişkenin değerini bir yıl artırarak yeni bir tarih hesaplar. Fonksiyondan geriye dönen değer tarih içerikli olacağı için, yazdırmanız ancak DateToStr tip dönüştürme 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 içerikli değişken değerinin (dört yılda bir oluşan 366 gün çeken yıl) 366 gün çekip çekmediğini anlayabilen bir fonksiyondur. Fonksiyondan geriye dönen değer True veya false olabileceği için ufak bir sonuç dallanmasıyla sonuca ulaşabilirsiniz. Şayet belirttiğiniz tarih 366 gün çekiyorsa sonuç True olacaktır. Procedure TForm1.Button1Click(Sender; Object); var Tarih : TDate; Sonuc : Boolean; begin Tarih := Date; Sonuc := IsInLeapYear(Tarih); // 366 gün mü çekiyor If Sonuc=True Then Caption := ‘366 Gün çeker’ Else Caption := ‘365 Gün çeker’; end; IsLeapYear(Yıl); Parametre olarak girilen tarihin 365 gün çekip çekmediğ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 gün mü çekiyor If Sonuc=True Then Caption := ‘366 Gün çeker’ Else Caption := ‘365 Gün çeker’; end; IsToDay(Tarih); Parametre olarak girilen tarih değişkeninin, bugünün tarihine eşit olup olmadığını kontrol eden bir fonksiyondur. Fonksiyondan geriye dönen değer Boolean tip bir değişkende saklanabilir.Bu değişkenin değerinin True olması girilen tarihe bugüne 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 güne eşit’; end; Fonksiyondan true feya false değerinin döndüğünü hatırlamakta fayda var. IsValidDate(Yıl, Ay, Gün); 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 büyük ve gün değerinin 31 den büyük olması gibi) Fonksiyondan geriye True değerinin dönmesi 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 dönen 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; |
#5
|
||||
|
||||
Cvp: Delphide zaman fonksiyonları
MonthsBetween(Tarih1, Tarih2);
Parametre olarak belirtilen tarih değişkenleri arasında kaç 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 dönen değer bir tam sayı olduğu için IntToStr tip dönüştürme 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 güne ait tarih ve saati yazdırabilen bir fonksiyondur. Fonksiyondan geriye dönen Tarih_Zaman içerikli veri döneceği için DateTimeToStr tip dönüştürme 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 1924 Yazar end; NthDayOfWeek(Tarih); Parametre olarak girilen tarih değişken değerinin, ayın kaçı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 kaçıncı haftası Caption := IntToStr(Deger); // 2 Yazar end; Fonksiyondan tam sayı tipli bir değer döneceği için IntToStr tip dönüştürme fonksiyonu kullanarak yazdırılabilir. RecodeDate(Tarih1, Yil, Ay, Gün); 2.inci, 3.üncü, 4.üncü parametre ile belirlenen değerleri birleştirip, ilk parametre formatında yeni bir tarih değeri oluşurur. Fonksiyondan geriye dönen değer Tarih_Zaman içerikli olacağı için 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 dönen değer, tarihsel içerik içerdiği için herhangi bir kontrolün üzerinde (kullanıcıya göstermek amaçlı) yazdırmak için DateTimeToStr fonksiyonundan faydalanmalısınız. Dilerseniz DateToStr sadece tarih kısmını (saat hariç) yazdırabilirsiniz. ReplaceDate(Tarih1, Tarih2); Parametre olarak belirtilen iki tarihin değerlerinin birbiriyle değişmesini sağlayan bir prosedürdür. 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 dönen değer tarihsel veri içereceği için, kontrollerden herhangi birisinde yazdırılması için DateToStr tip dönüştürme fonksiyonundan faydalanmalısınız. Dilerseniz aynı işlemi aşağıda ki gibi 3 parametre ile de yapabilirsiniz. Örneği dikkatlice inceleyiniz. Çünkü fonksiyon opsiyonel parametre içermektedir. Procedure TForm1.Button1Click(Sender; Object); Var Tarih : TDateTime; begin Tarih := StartOfADay(2003, 3, 10); // 3 Ay 10 gün ekle Caption := DateToStr(Tarih); //10/03/2003 yazar end; |
#6
|
||||
|
||||
Cvp: Delphide zaman fonksiyonları
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 dönen değer tarihsel içerik içerdiğinden, yazdırmak için DateToStr fonksiyonundan faydalanmalısınız. StartOfAYear(Yıl); Parametreyle belirtilen yılın ilk gününe ait tarih değerini döndüren fonksiyondur. Fonksiyondan geriye dönen değer tarihsel veri içerdiği için 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 günü bulmak için kullanılan bir fonksiyondur. (ay ve yıl değişmez sadece günün 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 gününün 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; Örnekte yer alan aktif tarih 11/07/2003 tür ve Cuma gününe karşılık gelmektedir.O haftaya ait pazartesi, pazartesi gününün tarihi ise 07/0/7/2003 tür. Bu yüzden fonksiyın tarihinin bulunfuğu haftaya ait ilk günü döndüreceği için sonuç 07/07/2003 olacaktır. StrToDate(Stirng_Tarih); Parametre ile verilen string değişkeni tarihsel veriye dönüştürmek için kullanılan bir fonksiyondur. Dikkat edeceğiniz husus parametre değerini tarihe çeviremez ise program hata verecektir. Procedure TForm1.Button1Click(Sender; Object); Var Tarih : TDateTime; begin Tarih := StrToDate(Edit1.Text); // Tarihe çevir Caption := DateToStr(Tarih+10); // 10 Gün 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 bugünün tarihini baz al Caption := DateToStr(Tarih); end; Fonksiyonun yaptığı iş Edit1 kutusuna tarihe dönüştürülemeyecek bir değerin girilmesi durumunda oluşacak hatayı engellemek ve (bir çok durumda bu günkü tarihin yazılması için 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 içerikli değişkene aktarmak için kullanılan bir fonksiyondur. Procedure TForm1.Button1Click(Sender; Object); Var Tarih : TDateTime; begin Tarih := StrToDateTime(Edit1.Text); // Tarih ve zamana çevir Caption := DateTimeToStr(Tarih+10); // 10 Gün ekle end; StrToDateTimeDef(Tarih_Zaman , Varsayılan_Tarih_Zaman); Tip çevirme 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 çevirebilen bir fonksiyondur. Şayet parametre değeri zamana çevrilemiyorsa, programınız hata mesajı verecektir. Procedure TForm1.Button1Click(Sender; Object); Var Zaman : TDateTime; begin Zaman := StrToTime(Edit1.Text); // Zamana çevir Caption := TimeToStr(Zaman); end; Bu örnek için Edit kutusuna (10:06:45) gibi saati gösteren 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 çevrilemeyecek 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 öğrenebilirsiniz.Fonksiyondan geriye dönen değer zaman içerikli olacağı için yazdırmak için TimeToStr tip dönüşüm 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 çevirip yazdırmak için kullanılır. Aşağıdaki örnekte 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; |
#7
|
||||
|
||||
Cvp: Delphide zaman fonksiyonları
Today:
Aktif tarihi (saatsiz olarak) yazdırmak için kullanılan bir fonksiyondur. Procedure TForm1.Button1Click(Sender; Object); Var Tarih : TDateTime; begin Tarih := Today; Caption := DateTimeToStr(Tarih); // 11/07/2003 end; Fonksiyondan geriye dönen değer tarihsel içerikli olduğu için DateTimeToStr (DateToStr de olur) tip dönüştürme fonksiyonundan faydalanmalısınız. Tomorrow: Aktif tarihten (Date) bir gün sonraki tarihi bulmak için 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 kaçı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 kaçıncı haftası Caption := IntToStr(Hafta)+’. Hafta’; // 28. Hafta yazar end; WeekOfTheMonth(Tarih); Bu da belirtilen tarih içerisinde o aya ait hangihaftada bulunduğunu hesaplayan bir fonksiyondur. Fonksiyondan geriye dönen değer tam sayı olduğu için yazdırılma işlemi ancak IntToStr tip dönüştürme fonksiyonu kullanılarak yapılabilir. Procedure TForm1.Button1Click(Sender; Object); Var Tarih : TDateTime; Hafta : Word; begin Tarih := Now; Hafta := WeekOfTheMonth(Tarih); // Ayın kaçı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 dönen değer tam sayı olduğu için IntToStr tip dönüştürme 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 kaç hafta var Caption := IntToStr(Adet)+’ Hafta fark var’; // 8 Hafta fark var yazar end; WeeksInAYear(Yıl); Parametre ile girilen yılın kaç haftadan oluştuğunu hesaplayan fonksiyondur. Fonksiyondan geriye dönen değer tam sayı tipli olduğu için 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 bölümü döndüren fonksiyondur. Fonksiyondan geriye dönen değer tam sayı tipli olacağı için yazdırmak için 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 kaç yıl bulunduğunu hesaplayan fonksiyondur. Fonksiyondan geriye dönen değer tam sayı tipli olacağı için yazdırmak için 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 kaç yıl var Caption := IntToStr(Deger); // 3 yazar end; Yesterday : Bir önceki güne ait (Date-1) tarihi hesaplayabilen bir fonksiyondur. Fonksiyondan geriye dönen değer tarih içerikli olacağı için yazdırmak ancak DateToStr tip dönüştürme fonksiyonu sayesinde olabilecektir. Procedure TForm1.Button1Click(Sender; Object); Var Tarih : TDateTime; begin Tarih := Yesterday; // Bir önceki günü al Caption := ‘Önceki günkü tarih ’+DateToStr(Tarih); end; |