yazılan saat ve tarihi local zamana değiştirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

yazılan saat ve tarihi local zamana değiştirme

Mesaj gönderen kazimates »

2 adet edit alanımda aşağıdaki formatda bilgilerim var
edityil = NOV30
Editzaman =212127
şeklinde ve şimdi bunları local zamana çevirmem gerek yani yaz saatindeysem bu durumda editzamana 3 saat 030000 eklemem gere
şayet kış saati uygulayacak olursamda o zaman editzamana 2 saat 020000 eklemem gerekecek ve sonrasında çıkan netice bu sefer edityil alanındaki değeri tekrar hesaplaması gerekecek örnek olarak yukarıda NOV30 denilmiş yani saat220000+2=000000 olacak ve bu durumda yil hesaplanmış yıl değeri değişkenime DEC01 atanması gerekecek. şimdi bunu nasıl yapabiliriz? buna bir örnek verebilirmisiniz?

Yada edit2deki alanı time ve edityildaki alanı bir şekilde date olarak tanımlayabilrsek buda demek olacakki 30-NOV-2008 ve 21:21:27 şeklinde gösterip saate +2 veya +3 atayınca otomatik olarak 30-Nov-2008 ide bir artırabiliriz?

umarım fazla karışık olmamıştır. yardımlarınız için şimdiden teşekkür ederim.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: yazılan saat ve tarihi local zamana değiştirme

Mesaj gönderen Kuri_YJ »

Selamlar,

1 Gün 86400 Sn.'den ibarettir. Delphideki DateTime mantığında eğer herhangi bir Datetime Field'da tamsayı olarak herhangi bir sayı eklerseniz, tarihi o kadar gün ileri götürmüş olursunuz, eğer noktadan sonra bir değer eklerseniz o da Time kısmına eklenti yapar.

Bir tane Label ve bir buton koyun herhangi bir forma ve butonunun click eventine aşağıdaki kodu yazın. Tarih'i 1 Saniye öteye götürecektir.

Kod: Tümünü seç

  Label1.Caption := FormatDateTime('dd.mm.yy hh:mm:ss', Date + 0.0000116) ;
DateUtils isimli Unit'te DateTime Routines'leri incelerseniz işinize yarayacak baya şey bulacaksınız. Örneğin 6 saat öteye götürmek için herhangi bir datetime değerine 0.25 eklerseniz (1/4 gün eder) 6 saat öteye götürürsünüz, 0.125 eklerseniz 3 Saat ileri götürürsünüz gibi. Yani saat işlemleri noktadan sonraki değer olacaktır. Zaten Datetime değeri noktalı bir sayıdır. Yanid DateTime field'da tutuan değer aslında sayısal bir değerdir.

Ancak sizin işinizi IncHour isimli fonksiyon görür diye düşünüyorum ;)

DateUtils Unitinde,
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla