Delphi Programlama: Tarih / Saat Rutinleri

İki TDateTime değerini karşılaştırır ("az", "eşit" veya "daha büyük" değerini döndürür). Her iki değer de aynı gün "düşerse" Zaman bölümünü yoksayar.

CompareDateTime işlevi

İki TDateTime değerini karşılaştırır ("az", "eşit" veya "daha büyük" değerini döndürür).

Beyan:
TValueRelationship = -1..1 yazın
fonksiyon CompareDateTime (const ADate, BDate: TDateTime): TValueRelationship

Açıklama:
İki TDateTime değerini karşılaştırır ("az", "eşit" veya "daha büyük" değerini döndürür).

TValueRelationship iki değer arasındaki ilişkiyi temsil eder. Üç TValueRelationship değerinin her birinin "beğenilen" sembolik sabiti vardır:
-1 [LessThanValue] İlk değer ikinci değerden küçük.
0 [EqualsValue] İki değer eşittir.
1 [GreaterThanValue] İlk değer ikinci değerden büyük.
Tarih sonuçları şununla karşılaştır:

ADate, BDate'den önce ise LessThanValue.
Hem ADate hem de BDate'in tarih ve saat bölümleri aynıysa değer
ADate, BDate'den daha geç ise GreaterThanValue.

Misal:

var ThisMoment, FutureMoment: TDateTime; ThisMoment: = Şimdi; FutureMoment: = IncDay (ThisMoment, 6); // 6 gün ekler. // CompareDateTime (ThisMoment, FutureMoment) LessThanValue (-1) değerini döndürür // CompareDateTime (FutureMoment, ThisMoment) GreaterThanValue (1) değerini döndürür
instagram viewer

CompareTime işlevi

İki TDateTime değerini karşılaştırır ("az", "eşit" veya "daha büyük" değerini döndürür). Her iki değer aynı anda gerçekleşirse, Tarih bölümünü yoksayar.

Beyan:
TValueRelationship = -1..1 yazın
fonksiyon CompareDate (const ADate, BDate: TDateTime): TValueRelationship

Açıklama:
İki TDateTime değerini karşılaştırır ("az", "eşit" veya "daha büyük" değerini döndürür). Her iki değer aynı anda gerçekleşirse Zaman bölümünü yok sayar.

TValueRelationship iki değer arasındaki ilişkiyi temsil eder. Üç TValueRelationship değerinin her birinin "beğenilen" sembolik sabiti vardır:
-1 [LessThanValue] İlk değer ikinci değerden küçük.
0 [EqualsValue] İki değer eşittir.
1 [GreaterThanValue] İlk değer ikinci değerden büyük.
Tarih sonuçları şununla karşılaştır:

ADate, BDate tarafından belirtilen günün erken saatlerinde gerçekleşirse LessThanValue.
Hem ADate'in hem de BDate'in zaman bölümleri aynıysa ve Date bölümünü yoksayarak değer verir.
ADate, BDate tarafından belirtilen günün ilerleyen saatlerinde gerçekleşirse GreaterThanValue.

Misal:

var ThisMoment, AnotherMoment: TDateTime; ThisMoment: = Şimdi; AnotherMoment: = IncHour (ThisMoment, 6); // 6 saat ekler. // CompareDate (ThisMoment, AnotherMoment) LessThanValue (-1) döndürür // CompareDate (AnotherMoment, ThisMoment) GreaterThanValue (1 değerini döndürür)

Tarih işlevi

Geçerli sistem tarihini döndürür.

Beyan:
tip TDateTime = tip Çift;

fonksiyon tarih: TDateTime;

Açıklama:
Geçerli sistem tarihini döndürür.

TDateTime değerinin ayrılmaz bir parçası, 12/30 / 1899'dan bu yana geçen gün sayısıdır. Bir TDateTime değerinin kesir kısmı 24 saat boyunca geçen kesirdir.

İki tarih arasındaki kesirli gün sayısını bulmak için iki değeri çıkarın. Benzer şekilde, bir tarih ve saat değerini belirli bir kesirli gün sayısıyla artırmak için, kesirli sayıyı tarih ve saat değerine eklemeniz yeterlidir.

Misal: ShowMessage ('Bugün' + DateToStr (Tarih));

DateTimeToStr işlevi

TDateTime değerini bir dizeye (tarih ve saat) dönüştürür.

Beyan:
tip
TDateTime = tip Çift;

fonksiyon DayOfWeek (Tarih: TDateTime): tamsayı;

Açıklama:
Belirli bir tarih için haftanın gününü döndürür.

DayOfWeek, Pazar gününün haftanın ilk günü ve Cumartesi yedinci olduğu 1 ile 7 arasında bir tamsayı döndürür.
DayOfTheWeek, ISO 8601 standardıyla uyumlu değildir.

Misal:

const Days: dizi [1..7] / string = ('Pazar Pazartesi Salı Çarşamba Perşembe Cuma Cumartesi') ShowMessage ('Bugün' + Günler [DayOfWeek (Tarih)]); //Bugün Pazartesi

Günler arası işlev

Belirtilen iki tarih arasındaki tam gün sayısını verir.

Beyan:
fonksiyon
DaysBetween (const ANow, AThen: TDateTime): Tamsayı;

Açıklama:
Belirtilen iki tarih arasındaki tam gün sayısını verir.

İşlev yalnızca tüm günleri sayar. Bunun anlamı, 05/01/2003 23:59:59 ve 05/01/2003 23:59:58 arasındaki farkın sonucu olarak 0 değerini döndüreceği - burada gerçek fark bir * bütün * gün eksi 1 saniye .

Misal:

var dtNow, dtBirth: TDateTime; DaysFromBirth: tamsayı; dtNow: = Şimdi; dtBirth: = EncodeDate (1973, 1, 29); DaysFromBirth: = DaysBetween (dtNow, dtBirth); ShowMessage ('Zarko Gajic "var"' + IntToStr (DaysFromBirth) + 'tam gün!');

DateOf işlevi

Zaman bölümünü 0 olarak ayarlayarak TDateTime değerinin yalnızca Tarih bölümünü döndürür.

Beyan:
fonksiyon
DateOf (Tarih: TDateTime): TDateTime

Açıklama:
Zaman bölümünü 0 olarak ayarlayarak TDateTime değerinin yalnızca Tarih bölümünü döndürür.

DateOf, saat bölümünü 0 olarak ayarlar, yani gece yarısı.

Misal:

var ThisMoment, ThisDay: TDateTime; ThisMoment: = Şimdi; // -> 06/27/2003 10:29:16:138. ThisDay: = DateOf (ThisMoment); // Bu Gün: = 06/27/2003 00: 00: 00: 000

DecodeDate işlevi

Yıl, Ay ve Gün değerlerini TDateTime değerinden ayırır.

Beyan:
prosedür
DecodeDate (Tarih: TDateTime; var Yıl, Ay, Gün: Kelime) ;;

Açıklama:
Yıl, Ay ve Gün değerlerini TDateTime değerinden ayırır.

Verilen TDateTime değerinin sıfırdan küçük veya ona eşit olması durumunda, yıl, ay ve gün dönüş parametrelerinin tümü sıfıra ayarlanır.

Misal:

var Y, M, D: Kelime; DecodeDate (Tarih, Y, M, D); Y = 2000 ise. ShowMessage ('' Yanlış 'bir yüzyıldasınız!);

EncodeDate işlevi
Yıl, Ay ve Gün değerlerinden bir TDateTime değeri oluşturur.

Beyan:
fonksiyon
EncodeDate (Yıl, Ay, Gün: Word): TDateTime

Açıklama:
Yıl, Ay ve Gün değerlerinden bir TDateTime değeri oluşturur.

Yıl 1 ile 9999 arasında olmalıdır. Geçerli Ay değerleri 1 ile 12 arasındadır. Geçerli Gün değerleri, Ay değerine bağlı olarak 1 ila 28, 29, 30 veya 31'dir.
İşlev başarısız olursa, EncodeDate bir EConvertError istisnası oluşturur.

Misal:

var Y, M, D: Kelime; dt: TDateTime; y: = 2001; M: = 2; D: = 18; dt: = EncodeDate (Y, M, D); ShowMessage ('Borna olacak. bir yaşında '+ DateToStr (dt))

FormatDateTime işlevi
TDateTime değerini bir dizeye biçimlendirir.

Beyan:
fonksiyon
FormatDateTime (const Fmt: dize; Değer: TDateTime): sicim;

Açıklama:
TDateTime değerini bir dizeye biçimlendirir.

FormatDateTime, Fmt parametresi tarafından belirtilen biçimi kullanır. Desteklenen format belirleyicileri için Delphi Yardım dosyalarına bakın.

Misal:

var s: string; d: TDateTime;... d: Artık =; // bugün + şimdiki zaman. s: = FormatDateTime ( 'dddd', d); // s: = Çarşamba. s: = FormatDateTime ('"Bugün" dddd "dakikası" nn', d) // s: = Bugün Çarşamba dakikası 24

IncDay işlevi

Bir tarih değerine belirli sayıda gün ekler veya çıkarır.

Beyan:
fonksiyon
IncDay (ADate: TDateTime; Günler: Tamsayı = 1): TDateTime;

Açıklama:
Bir tarih değerine belirli sayıda gün ekler veya çıkarır.

Days parametresi negatifse, döndürülen tarih

Misal:

var Tarih: TDateTime; EncodeDate (Tarih, 2003, 1, 29) // 29 Ocak 2003. IncDay (Tarih, -1) // 28 Ocak 2003

Şimdi işlevi

Geçerli sistem tarihini ve saatini döndürür.

Beyan:
tip
TDateTime = tip Çift;

fonksiyon Şimdi: TDateTime;

Açıklama:
Geçerli sistem tarihini ve saatini döndürür.

TDateTime değerinin ayrılmaz bir parçası, 12/30 / 1899'dan bu yana geçen gün sayısıdır. Bir TDateTime değerinin kesir kısmı 24 saat boyunca geçen kesirdir.

İki tarih arasındaki kesirli gün sayısını bulmak için iki değeri çıkarın. Benzer şekilde, bir tarih ve saat değerini belirli bir kesirli gün sayısıyla artırmak için, kesirli sayıyı tarih ve saat değerine eklemeniz yeterlidir.

Misal: ShowMessage ('Now is' + DateTimeToStr (Now));

Yıllar arası işlev

Belirtilen iki tarih arasındaki tüm yıl sayısını verir.

Beyan:
fonksiyon
YearsBetween (const SomeDate, AnotherDate: TDateTime): Tamsayı;

Açıklama:
Belirtilen iki tarih arasındaki tüm yıl sayısını verir.

Yıllar arasında, yılda 365,25 gün varsayımına dayanan bir yaklaşık değer döndürür.

Misal:

var dtSome, dtAnother: TDateTime; DaysFromBirth: tamsayı; dtSome: = EncodeDate (2003, 1, 1); dtAnother: = EncodeDate (2003, 12, 31); Yıllar arasında (dtSome, dtAnother) == 1 // artık olmayan yıl. dtSome: = EncodeDate (2000, 1, 1); dtAnother: = EncodeDate (2000, 12, 31); Yıllar Arası (dtSome, dtAnother) == 0 // artık yıl
instagram story viewer