Sayfayı Yazdır | Pencereyi Kapat

Tarih ve Saat (DateTime) Fonksiyonlary

Nereden Yazdırıldığı: kodyaziyorum.com
Kategori: Programlama Dilleri
Forum Adı: Delphi
Forum Tanımlaması: Türkiye' deki en eski görsel dillerden olan Delphi hakkında herşey burada.
URL: http://www.kodyaziyorum.com/forum_posts.asp?TID=810
Tarih: 25 Kasım 2014 Saat 22:24


Konu: Tarih ve Saat (DateTime) Fonksiyonlary
Mesajı Yazan: charvaka
Konu: Tarih ve Saat (DateTime) Fonksiyonlary
Mesaj Tarihi: 11 Kasım 2006 Saat 03:20
Alyntydyr...
 
Delphi her türlü tarih fonksiyonu içeren DateUtils unitini içerir. A?a?yda bu fonksiyonlardan en çok ihtiyacynyz olaca?ynyzy dü?ündüklerimi açykladym. Her fonksiyondan sonra, bir örnek ve örne?in döndürece?i de?eri yazdym. Böylelikle konu daha açyk anla?ylacaktyr.

Günün tarihini "03/09/2002" Saly, saatini ise "11:05:03" olarak kabul ettim. Bu fonksiyonlary kullanyrken uses kysmyna DateUtils'i eklemeyi unutmayyn.

- CompareDate : verilen iki tarihi kar?yla?tyryr. 1. tarih büyükse 1, küçükse -1, e?er iki tarihte ayny ise 0 de?erini döndürür.

            CompareDate(Date -2 , Date) = -1

    NOT : Tarihler üzerinde direk toplama ve çykarma i?lemi yapabilirsiniz. "Date -2" iki gün öncesinin tarihini verecektir.                         

- CompareDateTime : verilen iki tarih ve saat içeren datetime de?erini kar?yla?tyryr. 1. de?er büyükse 1, küçükse -1, her iki tarihsaat de?eri ayny ise 0 döndürür. Burada de?erin ayny olmasy demek yyl'dan ba?layark saliseye kadar tüm de?erlerin ayny olmasy demektir.

- CompareTime : verilen iki saat de?erini kar?yla?tyryr. 1. de?er büyükse 1, küçükse -1, iki de?erde ayny ise 0 döndürür.

- CurrentYear : Geçerli yyl 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 kysmyny döndürür. Aslynda burada saat bilgisi silinmez, "00:00:00" yani geceyarysyny gösterecek ?ekilde de?i?tirilir. Yani tarih ve saat ayrylmaz 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 Saly, 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 arasynda bir de?er olabilir.

            DayOf ( Date ) = 3

- DayOfTheMonth : DayOf fonksiyonu ile tamamen aynydyr.

            DayOfTheMonth ( Date ) = 3

- DayOfTheWeek : Haftanyn kaçyncy günü oldu?unu döndürür. Pazartesi ise 1, Saly ise 2, ... Pazar ise 7 döndürür.

            DayOfTheWeek ( Date ) = 2

- DayOfTheYear : Yylyn kaçyncy günü oldu?unu döndürür.

            DayOfTheYear ( Date ) = 246

- DayOfWeek : Haftanyn kaçyncy günü oldu?unu döndürür. Bu fonksiyonun farky Pazar günü ilk gün sayylyr. Yani Pazar ise 1, Pazartesi 2 ... Cumartesi ise 7 döndürür.

            DayOfWeek ( Date ) = 3

- DaysBetween : verilen iki DateTime arasyndaki geçen gün sayysyny döndürür. Bu fonksiyonda saatte önemlidir. 24 saat geçmi? olmalydyr. Yani "02/09/2002 11:54:00" ile "03/09/2002 11:53:59" arasyndaki gün sayysy 24 saat dolmady?y için 0 dyr.

- DaysInAMonth : Verilen yyl ve aydaki gün sayysyny döndürür.

            DaysInAMonth (2002, 5) = 31

- DaysInAYear : Verilen yylda kaç gün oldu?unu döndürür.

            DaysInAYear ( 2002 ) = 365

- DaysInMonth : Verilen tarihteki ayyn kaç gün oldu?unu hesaplar. Yani yyl ve ay de?erini verdi?iniz tarihten alyr.

            DaysInMonth ( Date ) = 30

- DaysInYear : Verilen tarihteki yylda kaç gün oldu?unu döndürür. Yani yyl de?erini verdi?iniz tarihten alyr.

            DaysInYear ( Date ) = 365

- DaySpan : Verilen iki DateTime de?eri arasyndaki gün farkyny bulur. DaysBetween fonksiyonundan farky, küsratly de?erler döndürür. Yani iki tarih arasynda 1 gün 23 saat ve 58 dakika fark varsa DaySpan : "1,998611" de?erini döndürür, DaysBetween gün tamamlanmady?y için 1 de?erini döndürür.

- DecodeDate : Verilen DateTime de?erini yyl, 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 yyl ve verilen tarihinde yylyn kaçyncy günü oldu?unu döndürür. 2002 ve 246. gün gibi.

- DecodeDateTime : Verilen DateTime de?erinin yyl, 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 yylyny, yylyn kaçyncy haftasy oldu?unu ve haftanyn kaçyncy 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 yyl, 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 yyl, ay, gün de?erlerini birle?tirip olu?an tarih de?erini döndürür. E?er yanly? de?erler verilmi?se fonksiyon False de?erini geri döndürür, tarih ba?aryyla birle?tirilmi?se True de?erini döndürür.

            var
              Tarih : TDateTime;

            if TryEncodeDate(2002, 10, 5, Tarih) then
              ShowMessage (' tarih ba?aryyla birle?tirildi!');

- EndOfAMonth : Verilen yyl ve ayyn son günü ve son anyny 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 kullanylyr.

            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 arasyndadyr.

            HourOf (Now) = 11

- HoursBetween : Verilen iki DateTime de?eri arasynda geçen saati döndürür. Fonksiyon 60 dakika tamamlanynca de?eri arttyryr. Yani 12:00:00 ile 12:59:59 arasyndaki fark 0 (syfyr) dyr, ancak 13:00:00 oldu?unda 1 döndürür.

- HourSpan : Verilen iki DateTime de?eri arasynda geçen saati döndürür. Yukarydaki fonksiyondan farky saat tam olmasa bile de?eri küsuratly olarak döndürür. Mesela 12:00:00 ile 12:59:59 arasyndaki saat farky 0,9998 saat gibi.

- IncMonth : Verilen tarihi, istenilen ay kadar artyryr veya azaltyr. 
      o E?er parametre - verilirse önceki aylary 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 sonrasyny döndürür.
      o E?er tarih arttyryldy?y zaman verilen gün o ay içerinde yoksa, o ayyn son günü döndürülür. Mesela 31/01/2002 tarihini bir ay artyryrsanyz ?ubat ayynda 31. gün olmady?y için sonuç 28/02/2002 olacaktyr.

            IncMonth ( Date ) = 03/10/2002 

- IncDay : Verilen tarihi istenilen gün kadar artyryr veya azaltyr. Parametre + verilirse artyryr, - verilirse azaltyr. 

            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 artyryr veya azaltyr. Benzer ?ekilde IncMinute, IncMilisecond, IncSecond fonksiyonlary da vardyr.

- IncWeek : Verilen tarihi istenilen hafta sayysy kadar artyryr veya azaltyr. Parametre + verilirse artyryr, - verilirse azaltyr.

            IncWeek ( Date ) = 10/09/2002

- IncYear : Verilen tarihin senesini istedi?inz kadar artyryr veya azaltyr. Parametre + verilirse artyryr, - verilirse azaltyr.

            IncYear ( Date ) = 03/09/2003
            IncYear ( Date, -2) = 03/09/2000

- IsInLeapYear : Verilen tarihin artyk bir senede (?ubat'yn 29 gün oldu?u) olup olmady?yny test eder.

            if IsInLeapYear (Date) then
              ShowMessage (' 2002 senesi artyk yyl olmady?y için, bu mesajy asla göremezsiniz!');

- IsLeapYear : Verilen senenin artyk sene (?ubat'yn 29 gün oldu?u) olup olmady?yny test eder.

            if IsLeapYear ( CurrentYear ) then
              ShowMessage (' Bu sene ?ubat ayy 29 gün çekiyor');

- IsToday : Verilen tarihin bugünün tarihi olup olmady?yny test eder. Ayny gün ise True döndürür.

            if IsToday ( Date ) then
              ShowMessage ( 'Date bugünün tarihini verdi?i için bu mesajy görürsünüz');

- IsValidDate : Verilen yyl, ay, gün de?erlerinin geçerli bir tarih olup olmady?yny test eder. Örne?in ay 2 ve gün 30 ise, ?ubat hiç bir zaman 30 gün olamayaca?y için False döndürür.

            if IsValidDate (2002, 10, 1) then
              ShowMessage ('geçerli bir tarihtir');

- IsValidDateTime : Verilen yyl, ay, gün, saat, dakika, saniye, salise de?erlerinin geçerli bir DateTime de?eri olup olmady?yn 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 arasy bir de?er olamlydyr!');

- IsValidTime : Verilen saat, dakika, saniye, salise de?erlerinin geçerli bir saat de?eri olup olmady?yn 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?y için geçersiz bir tarihtir');

- MinutesBetween : Verilen iki tarih arasyndaki dakika farkyny verir. Dakika tam oldu?u zaman de?eri artyryr. Örne?in 9:00:00 ile 9:00:59 arasyndaki farky 0 (syfyr) olarak döndürür.

- MinuteSpan : Verilen iki tarih arasyndaki dakika farkyny verir. Dakika tam olmasa bile küsuratly olarak de?eri döndürür. Örne?in 9:00:00 ile 9:00:59 arasyndaki farky 0,998 dakika gibi döndürür.

- MonthOf : Verilen tarihin ayyny döndürür. Yani sonuç 1 ile 12 arasynda bir de?er olmalydyr.

            MonthOf ( Date ) = 9

- MonthsBetween : Verilen iki tarih arasyndaki ay farkyny verir. Aylaryn uzunluklary e?it olmady?y için bir ay 30.4375 gün olarak belirlenmi?tir. Her 30.4375 gün için de?er 1 arttyrylyr.

- MonthSpan : Verilen iki tarih arasyndaki ay farkyny verir. 1 ay yine 30.4375 gün olarak belirlenmi?tir. Süre tamalanmasa bile küsuratly 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çyncy i? günü oldu?unu döndürür. Mesela gün Saly ve ayyn ikinci Salysy ise 2 döndürür.

            NthDayOfWeek ( Date ) = 1

- StartOfAMonth : Verilen yyl ve aydaki ilk günün ilk anyny 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 (yaryn) tarihini döndürür.

            Tomorrow = 04/09/2002

- YearOf : Verilen tarihin yylyny döndürür.

            YearOf ( Date ) = 2002

- YearsBetween : Verilen iki tarih arasyndaki yyl farkyny 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 katy daha fonksiyon var. Ben en çok kullandyklarymy ve lazym olabilece?ini dü?ündüklerimi burada açykladym. Listenin tamamyny görmek için, Help'ten "date/time routines" kysmyna bakyn.
 
Alyntydyr...


-------------
MasteR c0deR



Sayfayı Yazdır | Pencereyi Kapat