Tarih ve Saat Fonksiyonları
TARİH VE SAAT
(DateTime) FONKSİYONLARI
Delphi her türlü tarih fonksiyonu içeren DateUtils unitini
içerir. Aşağıda bu fonksiyonlardan en çok ihtiyacınız olacağınızı düşündüklerimi
açıkladım. Her fonksiyondan sonra, bir örnek ve örneğin döndüreceği değeri yazdım.
Böylelikle konu daha açık anlaşılacaktır.
Günün tarihini "03/09/2002" Salı, saatini
ise "11:05:03" olarak kabul ettim. Bu fonksiyonları kullanırken uses kısmına DateUtils'i eklemeyi
unutmayın.
- CompareDate : verilen iki tarihi karşılaştırır. 1.
tarih büyükse 1, küçükse -1, eğer iki tarihte aynı ise 0 değerini döndürür.
CompareDate(Date -2 , Date) = -1
NOT : Tarihler üzerinde direk toplama ve
çıkarma işlemi yapabilirsiniz. "Date -2" iki gün öncesinin tarihini verecektir.
- CompareDateTime : verilen iki tarih ve saat içeren
datetime değerini karşılaştırır. 1. değer büyükse 1, küçükse -1, her iki
tarihsaat değeri aynı ise 0 döndürür. Burada değerin aynı olması demek yıl'dan
başlayark saliseye kadar tüm değerlerin aynı olması demektir.
- CompareTime : verilen iki saat değerini
karşılaştırır. 1. değer büyükse 1, küçükse -1, iki değerde aynı ise 0 döndürür.
- CurrentYear : Geçerli yıl bilgisini 4 karakter olarak
döndürür. 2002 gibi.
CurrentYear = 2002
- Date : Geçerli tarihi döndürür.
Date = 03/09/2002
- DateOf : Bir datetime değerini alarak bunun sadece
tarih kısmını döndürür. Aslında burada saat bilgisi
silinmez, "00:00:00" yani geceyarısını gösterecek şekilde değiştirilir. Yani
tarih ve saat ayrılmaz ikilidir. Sürekli beraberdirler.
DateOf ( Now ) = 03/09/2002
- DateTimeToStr : Verilen bir DateTime değerini
string'e çevirir.
DateTimeToStr ( Now ) = '03/09/2002 11:05:03'
- DateTimeToString : Verilen bir DateTime değerini
istediğiniz formatta string'e çevirir.
var
Str : String;
DateTimeToString(Str, 'd mmmm yyyy dddd, hh:nn', Now);
ShowMessage ( Str ); = 3 Eylül 2002 Salı, 11:05
- DateToStr : verilen bir DateTime değerini string'e
çevirir. Sonuçta sadece tarih verisi bulunur, saat olmaz.
DateToStr ( Date) = '03/09/2002'
- DayOf : Verilen bir DateTime değerindeki günü
döndürür. Yani sonuç 1 ile 31 arasında bir değer olabilir.
DayOf ( Date ) = 3
- DayOfTheMonth : DayOf fonksiyonu ile tamamen aynıdır.
DayOfTheMonth ( Date ) = 3
- DayOfTheWeek : Haftanın kaçıncı günü olduğunu
döndürür. Pazartesi ise 1, Salı ise 2, ... Pazar ise 7 döndürür.
DayOfTheWeek ( Date ) = 2
- DayOfTheYear : Yılın kaçıncı günü
olduğunu döndürür.
DayOfTheYear ( Date ) = 246
- DayOfWeek : Haftanın kaçıncı günü olduğunu döndürür.
Bu fonksiyonun farkı Pazar günü ilk gün sayılır. Yani Pazar ise 1, Pazartesi 2
... Cumartesi ise 7 döndürür.
DayOfWeek ( Date ) = 3
- DaysBetween : verilen iki DateTime arasındaki geçen
gün sayısını döndürür. Bu fonksiyonda saatte önemlidir. 24 saat geçmiş
olmalıdır. Yani "02/09/2002 11:54:00" ile "03/09/2002 11:53:59" arasındaki gün
sayısı 24 saat dolmadığı için 0 dır.
- DaysInAMonth : Verilen yıl ve aydaki
gün sayısını döndürür.
DaysInAMonth (2002, 5) = 31
- DaysInAYear : Verilen yılda kaç gün
olduğunu döndürür.
DaysInAYear ( 2002 ) = 365
- DaysInMonth : Verilen tarihteki ayın kaç gün olduğunu
hesaplar. Yani yıl ve ay değerini verdiğiniz tarihten alır.
DaysInMonth ( Date ) = 30
- DaysInYear : Verilen tarihteki yılda kaç gün olduğunu
döndürür. Yani yıl değerini verdiğiniz tarihten alır.
DaysInYear ( Date ) = 365
- DaySpan : Verilen iki DateTime değeri arasındaki gün
farkını bulur. DaysBetween fonksiyonundan farkı, küsratlı değerler döndürür.
Yani iki tarih arasında 1 gün 23 saat ve 58 dakika fark varsa DaySpan :
"1,998611" değerini döndürür, DaysBetween gün tamamlanmadığı için 1 değerini
döndürür.
- DecodeDate : Verilen DateTime değerini yıl, ay ve gün
değerlerini döndürür.
var
Yil, Ay, Gun : word;
DecodeDate ( Date, Yil, Ay, Gun);
- DecodeDateDay : Verilen DateTime değerinin yıl ve
verilen tarihinde yılın kaçıncı günü olduğunu döndürür. 2002 ve 246. gün gibi.
- DecodeDateTime : Verilen DateTime değerinin yıl, ay,
gün, saat, dakika, saniye, salise değerlerini döndürür.
var
yil, ay, gun, saat, dakika, saniye, salise : Word;
DecodeDateTime ( Now, yil, ay, gun, saat, dakika, saniye, salise);
- DecodeDateWeek : Verilen DateTime değerinin yılını,
yılın kaçıncı haftası olduğunu ve haftanın kaçıncı günü olduğunu döndürür.
- DecodeTime : Verilen DateTime değerinin saat, dakika,
saniye ve salise değerlerini döndürür.
var
saat, dakika, saniye, salise : Word;
DecodeTime ( Now, saat, dakika, saniye, salise);
- EncodeDate : Verilen yıl, ay, gün değerlerini
birleştirip oluşan tarih değerini döndürür.
var
Tarih : TDateTime;
Tarih := EncodeDate (2002, 10, 5); = 05/10/2002
- TryEncodeDate : Verilen yıl, ay, gün değerlerini
birleştirip oluşan tarih değerini döndürür. Eğer yanlış değerler verilmişse
fonksiyon False değerini geri döndürür, tarih başarıyla birleştirilmişse True
değerini döndürür.
var
Tarih : TDateTime;
if TryEncodeDate(2002, 10, 5, Tarih) then
ShowMessage (' tarih başarıyla birleştirildi!');
- EndOfAMonth : Verilen yıl ve ayın son
günü ve son anını döndürür.
EndOfAMonth (2002, 5) = 31/05/2002 23:59:59
- FormatDateTime : Verilen DateTime
değerini istediğiniz formatta göstermek için kullanılır.
FormatDateTime ('d mmmm yyyy', Date) = '3 Eylül 2002'
- HourOf, HourofTheDay : Verilen DateTime değerinin
saatini döndürür. Yani sonuç 0 ile 23 arasındadır.
HourOf (Now) = 11
- HoursBetween : Verilen iki DateTime değeri arasında
geçen saati döndürür. Fonksiyon 60 dakika tamamlanınca değeri arttırır. Yani
12:00:00 ile 12:59:59 arasındaki fark 0 (sıfır) dır, ancak 13:00:00 olduğunda 1
döndürür.
- HourSpan : Verilen iki DateTime değeri arasında geçen
saati döndürür. Yukarıdaki fonksiyondan farkı saat tam olmasa bile değeri
küsuratlı olarak döndürür. Mesela 12:00:00 ile 12:59:59 arasındaki saat farkı
0,9998 saat gibi.
- IncMonth : Verilen tarihi, istenilen ay kadar artırır
veya azaltır.
o Eğer parametre - verilirse önceki ayları
döndürür. Örneğin -1 verilirse bir ay önceki tarihi döndürür.
o Eğer parametre 1 den büyük bir değer verilirse
o kadar ay sonrasını döndürür.
o Eğer tarih arttırıldığı zaman verilen gün o ay
içerinde yoksa, o ayın son günü döndürülür. Mesela 31/01/2002 tarihini bir ay
artırırsanız şubat ayında 31. gün olmadığı için sonuç 28/02/2002 olacaktır.
IncMonth ( Date ) = 03/10/2002
- IncDay : Verilen tarihi istenilen gün
kadar artırır veya azaltır. Parametre + verilirse artırır, - verilirse azaltır.
IncDay ( Date ) = 04/09/2002
IncDay (
Date, 3 ) = 06/09/2002
IncDay (
Date, -1) = 02/09/2002
- IncHour : Verilen DateTime değerinin saatinin
istenilen değer kadar artırır veya azaltır. Benzer şekilde IncMinute,
IncMilisecond, IncSecond fonksiyonları da vardır.
- IncWeek : Verilen tarihi istenilen
hafta sayısı kadar artırır veya azaltır. Parametre + verilirse artırır, -
verilirse azaltır.
IncWeek ( Date ) = 10/09/2002
- IncYear : Verilen tarihin senesini istediğinz kadar
artırır veya azaltır. Parametre + verilirse artırır, - verilirse azaltır.
IncYear ( Date ) = 03/09/2003
IncYear (
Date, -2) = 03/09/2000
- IsInLeapYear : Verilen tarihin artık bir senede
(Şubat'ın 29 gün olduğu) olup olmadığını test eder.
if IsInLeapYear (Date) then
ShowMessage (' 2002 senesi artık yıl olmadığı için, bu mesajı asla
göremezsiniz!');
- IsLeapYear : Verilen senenin artık sene (Şubat'ın 29
gün olduğu) olup olmadığını test eder.
if IsLeapYear ( CurrentYear ) then
ShowMessage (' Bu sene Şubat ayı 29 gün çekiyor');
- IsToday : Verilen tarihin bugünün tarihi olup
olmadığını test eder. Aynı gün ise True döndürür.
if IsToday ( Date ) then
ShowMessage ( 'Date bugünün tarihini verdiği için bu mesajı görürsünüz');
- IsValidDate : Verilen yıl, ay, gün değerlerinin
geçerli bir tarih olup olmadığını test eder. Örneğin ay 2 ve gün 30 ise, Şubat
hiç bir zaman 30 gün olamayacağı için False döndürür.
if IsValidDate (2002, 10, 1) then
ShowMessage ('geçerli bir tarihtir');
- IsValidDateTime : Verilen yıl, ay, gün, saat, dakika,
saniye, salise değerlerinin geçerli bir DateTime değeri olup olmadığın test
eder. Geçerli ise True, değilse False döndürür.
if not IsValidDateTime ( 2002, 13, 5, 11, 11, 11, 11 ) then
ShowMessage (' ay hiç bir zaman 13 olamaz, 1 ile 12 arası bir değer
olamlıdır!');
- IsValidTime : Verilen saat, dakika, saniye, salise
değerlerinin geçerli bir saat değeri olup olmadığın test eder. Geçerli ise True,
değilse False döndürür.
if not IsValidTime (30, 11, 10, 1) then
ShowMessage (' saat 23'' ten büyük olamayacağı için geçersiz bir tarihtir');
- MinutesBetween : Verilen iki tarih arasındaki dakika
farkını verir. Dakika tam olduğu zaman değeri artırır. Örneğin 9:00:00 ile
9:00:59 arasındaki farkı 0 (sıfır) olarak döndürür.
- MinuteSpan : Verilen iki tarih arasındaki dakika
farkını verir. Dakika tam olmasa bile küsuratlı olarak değeri döndürür. Örneğin
9:00:00 ile 9:00:59 arasındaki farkı 0,998 dakika gibi döndürür.
- MonthOf : Verilen tarihin ayını döndürür. Yani sonuç
1 ile 12 arasında bir değer olmalıdır.
MonthOf ( Date ) = 9
- MonthsBetween : Verilen iki tarih arasındaki ay
farkını verir. Ayların uzunlukları eşit olmadığı için bir ay 30.4375 gün olarak
belirlenmiştir. Her 30.4375 gün için değer 1 arttırılır.
- MonthSpan : Verilen iki tarih arasındaki ay farkını
verir. 1 ay yine 30.4375 gün olarak belirlenmiştir. Süre tamalanmasa bile
küsuratlı olarak değeri döndürür.
- Now : Geçerli tarih ve saati döndürür.
Now = 03/09/2002 11:05:03
- NthDayOfWeek : Verilen tarihteki günün, o ay içindeki
kaçıncı iş günü olduğunu döndürür. Mesela gün Salı ve ayın ikinci Salısı ise 2
döndürür.
NthDayOfWeek ( Date ) = 1
- StartOfAMonth : Verilen yıl ve aydaki
ilk günün ilk anını döndürür.
StartOfAMonth (2002, 5) = 01/05/2002 00:00:00
- StrToDate: Verilen stringi tarih değerine çevirir.
StrToDate ('01/01/2002') = 01/01/2002
- StrToDateTime : Verilen stringi DateTime değerine
çevirir.
StrToDateTime ('01/01/2002 05:22:00') = 01/01/2002 05:22:00
- Time : Geçerli saati döndürür.
Time = 11:05:03
- TimeToStr : Verilen saat değerini stringe çevirir.
TimeToStr ( Time ) = '11:05:03'
- Today : Bugünün tarihini döndürür.
Today = 03/09/2002
- Tomorrow : Ertesi günün (yarın) tarihini döndürür.
Tomorrow = 04/09/2002
- YearOf : Verilen tarihin yılını döndürür.
YearOf ( Date ) = 2002
- YearsBetween : Verilen iki tarih arasındaki yıl
farkını döndürür.
- Yesterday : Bir önceki günün (dün) tarihini döndürür.
Yesterday = 02/09/2002
DateUtils uniti içinde bunun en az iki katı daha fonksiyon
var. Ben en çok kullandıklarımı ve lazım olabileceğini düşündüklerimi burada
açıkladım. Listenin tamamını görmek için, Help'ten "date/time routines" kısmına
bakın.
bimeks borland component database delphi delphi.net delphi dersleri firebird help interbase makale oracle
seminer software sybase veritabanı web
|