tarih çıkarma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
hacikisi
Üye
Mesajlar: 64
Kayıt: 24 Şub 2004 07:29
Konum: Gaziantep

tarih çıkarma

Mesaj gönderen hacikisi »

01.01.1995
01.01.2004

bu iki tarihi çıkarttığımda bana 557 gün farkı var şeklinde değilde
atıyorum 2 yıl 5 ay 23 gün şeklinde bir sonuc vermesini istiyorum. forumda sorulara baktım tabiki araştırmadan yazmadım. ancak forumdaki soruların tamamına verilen cevaplarda benim istediğim gibi değilde 554 gün farkı var diye sonuç alınıyor.. istediğim şekildeki formatı bir kaç gündür üzerinde çalışıyorum ancak henüz alamadım. lütfen yardım.... tşk.
Siz İman Etmedikçe Cennete Giremezsiniz. Birbirinizi Sevmedikçede İman Etmiş Olamazsınız.

Hz.Muhammed (S.A.V.)
Resim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

direk hazır bir fonksiyon yok hocam.

http://www.delphiturkiye.com/index.php? ... tetime.htm

burdaki fonksiyonları kullanarak yapabilirsin. En basit şekliyle :

- aradaki yılı bul. Örnek : 2 yıl
- ilk tarihe 2 yıl ekle
- aradaki ay farkını bul : 5 ay
- tarihe 5 ay ekle
- aradaki gün farkını bul : 14 gün
- hepsini topla yaz
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

şöyle bi kod yazdım doğru çalışıyor gibi

Kod: Tümünü seç

var
  date1 :TDateTime;
  date2 :TDateTime;
  d2 : Extended;
  d,m,y : integer;
begin
  date1 := DateTimePicker1.DateTime;
  date2 := DateTimePicker2.DateTime;
  d2 :=  date2 - date1;
  d2 := d2 + EncodeDateTime(1,1,1,1,1,1,1);
  d :=  DayOf(d2)-2;
  m :=  MonthOf(d2)-1;
  y :=  YearOf(d2)-1;
  ShowMessage(inttostr(D)+' gün '+ inttostr(M)+' ay '+inttostr(Y)+' yıl');
DateTimePicker'ları kaldırman lazım
hacikisi
Üye
Mesajlar: 64
Kayıt: 24 Şub 2004 07:29
Konum: Gaziantep

encodedatetime

Mesaj gönderen hacikisi »

encodedatetime yazan satırda hata veriyor.
Siz İman Etmedikçe Cennete Giremezsiniz. Birbirinizi Sevmedikçede İman Etmiş Olamazsınız.

Hz.Muhammed (S.A.V.)
Resim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: encodedatetime

Mesaj gönderen mussimsek »

hacikisi yazdı:encodedatetime yazan satırda hata veriyor.
"hata veriyor" ne demek hocam, bu hatanı adını alın ve :ara arama kısmında aratın. Bulamazsanız, hatanın adı ile sorunuz.

Kolay gelsin.
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Merhaba,

uses'a dateutils unitesini de eklemen lazım
hacikisi
Üye
Mesajlar: 64
Kayıt: 24 Şub 2004 07:29
Konum: Gaziantep

tşk

Mesaj gönderen hacikisi »

hocam tşk. işimi gördü. çok sağl.
Siz İman Etmedikçe Cennete Giremezsiniz. Birbirinizi Sevmedikçede İman Etmiş Olamazsınız.

Hz.Muhammed (S.A.V.)
Resim
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Rx componentlerinin içinde tarih işlemlerini yapan kusursuz unitler var... Ben onları kullnıyorum... Süper şeyler valla.. Denemenizi tavsiye ederim...

Sevgiler..
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
hacikisi
Üye
Mesajlar: 64
Kayıt: 24 Şub 2004 07:29
Konum: Gaziantep

hata mesajı

Mesaj gönderen hacikisi »

t-hex gönderdiğin kodda tarih çıkarması yaptığımda istidiğim formata uygun ancak
17.11.2000
17.05.1999
tarihlerini çıkarttığımızda 0 gün 6 ay 1 yıl olarak yazması gerekirken bu kodlara göre 2 gün 1 ay 1 yıl şeklinde bir sonuc veriyor.
yine
24.03.2004
24.03.2004
çıkartıldığında ise 0 gün 0 ay 0 yıl olarak yazması gerekirken
0 gün 1 ay 0 yıl olarak yazıyor.
hocam gerekli düzeltmeyi nasıl yapacağımız konusunda yardımcı olursanız çok memnun oluruz. saygılarımızı sunuyoruz.
En son hacikisi tarafından 25 Mar 2005 08:43 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Siz İman Etmedikçe Cennete Giremezsiniz. Birbirinizi Sevmedikçede İman Etmiş Olamazsınız.

Hz.Muhammed (S.A.V.)
Resim
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Dediğim gibi Rx kullan.. Ben Bordro programında işcilerin işe giriş tarihinden itibaren kıdem hesaplarını yaptırttım. Kusursuz çalışıyor şu anda.. DateUtil diye bir uniti var. Aşağıdaki gibi kullanıyorsun...

Kod: Tümünü seç

D1:=Data.KimlikKIDEMBASTAR.AsDateTime;
D2:=Now;
DateDiff(D1, D2, D, M, Y);
D2 değerinden D1 değerini çıkarıyor
D,M,Y değerlerine farkı veriyor...

Sevgiler..
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Re: hata mesajı

Mesaj gönderen fduman »

hacikisi yazdı:t-hex gönderdiğin kodda tarih çıkarması yaptığımda istidiğim formata uygun ancak
17.12.2000
17.15.1999
tarihlerini çıkarttığımızda 0 gün 6 ay 1 yıl olarak yazması gerekirken bu kodlara göre 2 gün 1 ay 1 yıl şeklinde bir sonuc veriyor.
17.15.1999 nasıl bir tarihtir? Hangi aya tekabül ediyor bu? :)
Cevapla