Tarihi Sayıya çevirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Tarihi Sayıya çevirme

Mesaj gönderen ademcicek »

Herkese merhaba.
benim elimde 19.07.2005 şeklinde bir tarih var.
bu tarihi 190705 şekline nasıl çevirebilirim.
herkese kolay gelsin.
teşekür ederim.
Kullanıcı avatarı
yuksel2004
Üye
Mesajlar: 61
Kayıt: 26 May 2005 08:55
Konum: Bursa

Mesaj gönderen yuksel2004 »

FormatDateTime fonksiyonuyla halledilebilir sanırım..
Unutmayalım ki bu hayat bir demodur ve tam sürüm kullanabilmek için lisans ücreti ödemememiz düşünülemez.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

yuksel2004 yazdı:FormatDateTime fonksiyonuyla halledilebilir sanırım..
+1
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

ya da AnsiReplaceText...
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

olayı şöyle çözdüm.

Kod: Tümünü seç

function TfmGidenTren.TarihiDonustur(Tarih: TDate; Secim: Byte): string;
var
  Yil, Ay, Gun: Word;
  Ayy, Gunn, Yill: string;
begin
  DecodeDate(Tarih, yil, ay, gun);

  case Secim of
    0:
      begin
        if Ay > 9 then
          Ayy := IntToStr(Ay)
        else
          Ayy := '0' + IntToStr(Ay);
        if Gun > 9 then
          Gunn := IntToStr(Gun)
        else
          Gunn := '0' + IntToStr(Gun);
        Result := Ayy + Gunn
      end;
    1:
      begin
        if Ay > 9 then
          Ayy := IntToStr(Ay)
        else
          Ayy := '0' + IntToStr(Ay);
        if Gun > 9 then
          Gunn := IntToStr(Gun)
        else
          Gunn := '0' + IntToStr(Gun);

        Yill := Copy(IntToStr(Yil), 3, 2);

        Result := Gunn + Ayy + Yill;
      end;
  end;
end;
herkese kolay gelsin.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

şöyle daha iyi olmazmıydı.

Kod: Tümünü seç

function TfmGidenTren.TarihiDonustur(Tarih: TDate; Secim: Byte): string;
begin
  case Secim of
    0:result:=formatdatetime('ddmm',tarih);
    1:result:=formatdatetime('ddmmyy',tarih);
  end;
end;
................................................
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Hancet
Üye
Mesajlar: 107
Kayıt: 08 May 2005 01:18
Konum: Burdan...
İletişim:

Mesaj gönderen Hancet »

S.A.
arkadaşlar function yazmayı pek bilmiyorum. Ama bu kodlarda aynen istediğiniz işi görüyor

Kod: Tümünü seç

var
  s:string;
begin
   s:=datetostr(date);
   showmessage(copy(s,1,2)+copy(s,4,2)+copy(s,9,4));
end;
Varmı Beni İçinizde Tanıyan?
Yaşanmadan Çözülmeyen Sır Benim
Kalmasada Şöhretimi Duymayan,
Kimliğimi Tarif etmek zor Benim.
Kimsesizim hısmım da çok, hasmım da,
Görünmezim cismim de yok, resmim de,
Dil üzmezim, tek hece var ismimde,
Barınağım Delphi denen yer Benim..!
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
Hancet
eğer tarih formatı farklı ise sizin kodunuz hatalı çalışacaktır.
tarih formatının dd.mm.yyyy olması durumunda çalışan kodunuz
tarih fromatının d.m.yy olması durumunda çalışmayacaktır.

kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Hancet
Üye
Mesajlar: 107
Kayıt: 08 May 2005 01:18
Konum: Burdan...
İletişim:

Re: Tarihi Sayıya çevirme

Mesaj gönderen Hancet »

ademcicek yazdı:benim elimde 19.07.2005 şeklinde bir tarih var.
bu tarihi 190705 şekline nasıl çevirebilirim.
soru böyle olduğu için bende böyle bir mantık kullandım
yoksa dediğin gibi diğer durumda benim komut çalışmayacak
Varmı Beni İçinizde Tanıyan?
Yaşanmadan Çözülmeyen Sır Benim
Kalmasada Şöhretimi Duymayan,
Kimliğimi Tarif etmek zor Benim.
Kimsesizim hısmım da çok, hasmım da,
Görünmezim cismim de yok, resmim de,
Dil üzmezim, tek hece var ismimde,
Barınağım Delphi denen yer Benim..!
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Windows Tarih Sistemi Değiştirileceği İçin Şöylede Yapılabilir...

Formda 1 Adet DateTimePicker1, 1 Adet Edit1, 1 Adette Button Olduğunu Varsayarsak :D

butonun Click Olayına

var
i:integer;
begin
Edit1.Text:=Datetostr(DateTimePicker1.Date);
edit1.SelStart:=0;
edit1.sellenght:=1;
For i:=0 To Lenght(Edit1.Text) Do
begin
if edit1.seltext<>'.' then edit2.Text:=Edit2.Text+Edit1.Seltext;
edit1.SelStart:=Edit1.Selstart+1;
edit1.selenght:=Edit1.Selstart+1;
end;
end;


şeklinde olabilir.... :D

Saygılarımla,
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
@ender_arslanturk kardeşim tarih sistemi değişirse demişsin genede "." kullanmışsın. tarih sistemi değiştiğinde "." yerine "/" kullandığında senin kodlarında çalışmayacaktır.
(datetime picker formatı windowsdan alıyor.)
eğer "."yerine dateseperator umarım doğru yazmışımdır kullanılması da bizi tarih formatından bağımsız kılar.
+
bir satırlık bir kod yazmak varken neden uzun bir procedure yazalım.
(kendimizi geliştirmek farklı düşünme yolları... )

Kolaygelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
miskin
Üye
Mesajlar: 103
Kayıt: 26 Tem 2005 02:02
Konum: Gavuristan

Mesaj gönderen miskin »

tartismayla uzaktan bir ilgisi oldugu icin yaziyorum.

Indy nin bu konu ile ilgili bilesenleri var onlari indirirseniz, bircok tarih cevirme konusunda yardimci olacaktir.

Aslinda senin elinde öyle bir tarih yok öyle bir string var. o string'i alirsin icindeki seperatorlerin yerini bulup yok edersin.

Yada Yükselin dedigi gibi söyle cözülebilir.

function StringToTarih(sTarih: string): string;
begin
DateSeparator := FindDateSeperator(sTarih);
try
result := FormatDateTime('ddmmyy', StrToDate('sTarih'));
except
end;
end;

function FindDateSeperator(sTarih: string) : string;
var
i: Integer;
begin
i := 1;
while (i <= Length(sTarih)) and (S in ['0'..'9']) do
Inc(i);
if (i =! 1) and i <= Length(sTarih) then
result := sTarih
else
result := ''
end

miskin
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

ben oyumu aslangerinin yazdığı koda veriyorum :)

hem kolay anlaşılır (bir yer hariç) hem de değişik tarih formatlarına uygun.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
miskin
Üye
Mesajlar: 103
Kayıt: 26 Tem 2005 02:02
Konum: Gavuristan

Mesaj gönderen miskin »

sadettinpolat yazdı:ben oyumu aslangerinin yazdığı koda veriyorum :)

hem kolay anlaşılır (bir yer hariç) hem de değişik tarih formatlarına uygun.
Aslangerinin kodu uyguladim orda gördügüm hata, soruda tarih olarak verilen string, string önce Tarihe cevrilmesi lazim sonra string'e.

Neyse Aslangeri dogru görmüs, ben yine acele etmisim. Bende oyumu aslangeriye verdim

miskin
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

sadettinpolat yazdı:ben oyumu aslangerinin yazdığı koda veriyorum :)

hem kolay anlaşılır (bir yer hariç) hem de değişik tarih formatlarına uygun.
falza bir seçenek olmadığı (ve basit bir örnek olması) için 0 ve 1 kullandım.
:P
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla