Birbirini takip eden ay ve günler. Ama nasıl???
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Birbirini takip eden ay ve günler. Ama nasıl???
Merhaba
12 taksitli satışın olduğu bir form düşün. Bu formda tarihler Edit nesnelerine yazılıyor. Edit2, Edit1'e girilen tarihten sonraki ayı ve günü verecek. Edit3 Edit2'yi aynı şekilde takip edecek. Ve diğer Editler de kendinden önceki Edit nesnesine girilen tarihi böyle takip edecek. Yani;
Edit1'e diyelim ki dışardan 31.01.2004 tarihi girildi.
Edit2.text:=Edit1.text'in (sonraki ay ve uygun gününü)
Edit3.text:=Edit2.text'in (sonraki ay ve uygun gününü)
Edit4.text:=Edit3.text'in (sonraki ay ve uygun gününü)
Edit5.text:=Edit4.text'in (sonraki ay ve uygun gününü)
Edit6.text:=Edit5.text'in (sonraki ay ve uygun gününü)
Edit7.text:=Edit6.text'in (sonraki ay ve uygun gününü)
Edit8.text:=Edit7.text'in (sonraki ay ve uygun gününü)
Edit9.text:=Edit8.text'in (sonraki ay ve uygun gününü)
Edit10.text:=Edit9.text'in (sonraki ay ve uygun gününü)
Edit11.text:=Edit10.text'in (sonraki ay ve uygun gününü)
Edit12.text:=Edit11.text'in (sonraki ay ve uygun gününü) verecek.
Ama ayın günleri ille de son gün olamayabilir. Diğer Editlerdeki tarihler Edit1'deki girilen tarihe göre şekillenecek. Edit1 aysonu olacaksa kendinden sonraki aylar da kendi ayına ait songünü verecek. Edit1 aysonu değilse diğer Editler de uygun gün ve kendinden önceki Edit'in sonraki ayını verecek.
Daha fazla dallandırıp budaklandırmayayım. İş karışmasın:)
NoT: Ama lütfen "bunu incmonht ile yap" diye kesitrme cevap verme. Bunun yerine 3-4 tane editi düşünerek kodlarla öreneklendirisen anlamak kolay olur. Ve lütfen sadece Edit nesneleri üzerinden yardımcı olursanız sevinirim. Yani Edit yerine Calender kullan falan demeyin n'olur:)
Şimdiden Teşekkür Ederim
12 taksitli satışın olduğu bir form düşün. Bu formda tarihler Edit nesnelerine yazılıyor. Edit2, Edit1'e girilen tarihten sonraki ayı ve günü verecek. Edit3 Edit2'yi aynı şekilde takip edecek. Ve diğer Editler de kendinden önceki Edit nesnesine girilen tarihi böyle takip edecek. Yani;
Edit1'e diyelim ki dışardan 31.01.2004 tarihi girildi.
Edit2.text:=Edit1.text'in (sonraki ay ve uygun gününü)
Edit3.text:=Edit2.text'in (sonraki ay ve uygun gününü)
Edit4.text:=Edit3.text'in (sonraki ay ve uygun gününü)
Edit5.text:=Edit4.text'in (sonraki ay ve uygun gününü)
Edit6.text:=Edit5.text'in (sonraki ay ve uygun gününü)
Edit7.text:=Edit6.text'in (sonraki ay ve uygun gününü)
Edit8.text:=Edit7.text'in (sonraki ay ve uygun gününü)
Edit9.text:=Edit8.text'in (sonraki ay ve uygun gününü)
Edit10.text:=Edit9.text'in (sonraki ay ve uygun gününü)
Edit11.text:=Edit10.text'in (sonraki ay ve uygun gününü)
Edit12.text:=Edit11.text'in (sonraki ay ve uygun gününü) verecek.
Ama ayın günleri ille de son gün olamayabilir. Diğer Editlerdeki tarihler Edit1'deki girilen tarihe göre şekillenecek. Edit1 aysonu olacaksa kendinden sonraki aylar da kendi ayına ait songünü verecek. Edit1 aysonu değilse diğer Editler de uygun gün ve kendinden önceki Edit'in sonraki ayını verecek.
Daha fazla dallandırıp budaklandırmayayım. İş karışmasın:)
NoT: Ama lütfen "bunu incmonht ile yap" diye kesitrme cevap verme. Bunun yerine 3-4 tane editi düşünerek kodlarla öreneklendirisen anlamak kolay olur. Ve lütfen sadece Edit nesneleri üzerinden yardımcı olursanız sevinirim. Yani Edit yerine Calender kullan falan demeyin n'olur:)
Şimdiden Teşekkür Ederim
Merhaba Tekrar
Benzeri bir soru sormuşum, bu yüzden özür dilerim, yeni farkettim ben de
Verilen kod istenilen sonucu vermiyor ama;
tarih1 31.01.2004 (Manuel Girilen)
tarih2 29.02.2004
tarih3 29.03.2004
tarih4 29.04.2004
tarih5 29.05.2004
tarih6 29.06.2004
tarih7 29.07.2004
tarih8 29.08.2004
tarih9 29.09.2004
tarih10 29.10.2004
tarih11 29.11.2004
tarih12 29.12.2004
Edit1'e 31.01.2004 girdik diyelim. Edit2 istenilen sonucu veriyor. Yani 29.02.2004'yi. Ama sonraki Editler kendinden önceki Edite yazılan ayı takip ettiği gibi mesela Şubat'ın günü 29 ve ayın sonu olmasına rağmen, sonraki Edit yani Mart'ın da günü 29 oluyor ve diğer takip eden ayların günü de buna bağlı olarak 29'u döndürüyor.
benim istediğim ise; Eğer Edit1'e girilen tarihteki ayın günü son günse diğer Editler de seri ayı döndürüp buna bağlı olarak kendi aylarına ait son günü versin. Eğer Edit'e girilen ayın günü son gün değilse diğer Edit'ler de aynı gün ve sonraki ayı versin.
İlk Tarih Girişi Ay Sonu İse;
tarih1 31.01.2004 (Manuel Girilen)
tarih2 29.02.2004
tarih3 31.03.2004
tarih4 30.04.2004
tarih5 31.05.2004
tarih6 30.06.2004
tarih7 31.07.2004
tarih8 31.08.2004
tarih9 30.09.2004
tarih10 31.10.2004
tarih11 30.11.2004
tarih12 31.12.2004 Bu sonucu versin
İlk Tarih Girişi Ay Sonu DEĞİLSE;
tarih1 29.01.2004 (Manuel Girilen)
tarih2 29.02.2004
tarih3 29.03.2004
tarih4 29.04.2004
tarih5 29.05.2004
tarih6 29.06.2004
tarih7 29.07.2004
tarih8 29.08.2004
tarih9 29.09.2004
tarih10 29.10.2004
tarih11 29.11.2004
tarih12 29.12.2004 Bu sonucu versin
Yani Bütün Editlere girilen tarihler, Edit1'e girilen tarihe göre, Edit1'in Exit olayı gerçekleştiğinde birbirini takip eden seri halinde olması gerekiyor.
3-4 tane edite kod ile örnek verirseniz inanın çok mutlu olacağım.
İlgilenen Arkadaşlara Şimdiden Çok Teşekkür Ederim
Benzeri bir soru sormuşum, bu yüzden özür dilerim, yeni farkettim ben de

Verilen kod istenilen sonucu vermiyor ama;
Bu kodlara göre sonuç şu oluyor;lazio yazdı:maskedit in onexit ine..Kod: Tümünü seç
MaskEdit2.Text := DateToStr(IncMonth(StrToDate(MaskEdit1.Text))); MaskEdit3.Text := DateToStr(IncMonth(StrToDate(MaskEdit2.Text)));
tarih1 31.01.2004 (Manuel Girilen)
tarih2 29.02.2004
tarih3 29.03.2004
tarih4 29.04.2004
tarih5 29.05.2004
tarih6 29.06.2004
tarih7 29.07.2004
tarih8 29.08.2004
tarih9 29.09.2004
tarih10 29.10.2004
tarih11 29.11.2004
tarih12 29.12.2004
Edit1'e 31.01.2004 girdik diyelim. Edit2 istenilen sonucu veriyor. Yani 29.02.2004'yi. Ama sonraki Editler kendinden önceki Edite yazılan ayı takip ettiği gibi mesela Şubat'ın günü 29 ve ayın sonu olmasına rağmen, sonraki Edit yani Mart'ın da günü 29 oluyor ve diğer takip eden ayların günü de buna bağlı olarak 29'u döndürüyor.
benim istediğim ise; Eğer Edit1'e girilen tarihteki ayın günü son günse diğer Editler de seri ayı döndürüp buna bağlı olarak kendi aylarına ait son günü versin. Eğer Edit'e girilen ayın günü son gün değilse diğer Edit'ler de aynı gün ve sonraki ayı versin.
İlk Tarih Girişi Ay Sonu İse;
tarih1 31.01.2004 (Manuel Girilen)
tarih2 29.02.2004
tarih3 31.03.2004
tarih4 30.04.2004
tarih5 31.05.2004
tarih6 30.06.2004
tarih7 31.07.2004
tarih8 31.08.2004
tarih9 30.09.2004
tarih10 31.10.2004
tarih11 30.11.2004
tarih12 31.12.2004 Bu sonucu versin
İlk Tarih Girişi Ay Sonu DEĞİLSE;
tarih1 29.01.2004 (Manuel Girilen)
tarih2 29.02.2004
tarih3 29.03.2004
tarih4 29.04.2004
tarih5 29.05.2004
tarih6 29.06.2004
tarih7 29.07.2004
tarih8 29.08.2004
tarih9 29.09.2004
tarih10 29.10.2004
tarih11 29.11.2004
tarih12 29.12.2004 Bu sonucu versin
Yani Bütün Editlere girilen tarihler, Edit1'e girilen tarihe göre, Edit1'in Exit olayı gerçekleştiğinde birbirini takip eden seri halinde olması gerekiyor.
3-4 tane edite kod ile örnek verirseniz inanın çok mutlu olacağım.
İlgilenen Arkadaşlara Şimdiden Çok Teşekkür Ederim

merhaba,
sana kod yazma konusunda yardımcı olamayacağım çünki bu konuda hiç uğraşmadım yani bilmiyorum. Ama senin sayende biraz araştırma yaptım ve şimdi biraz uyumam lazım geceden çıktım kalkınca (kalkmak nasip olursa) bende inceleyip yapmaya çalışacağım. Araştırmada şunları buldum.
muhakkak usta arkadaşlarımız müsait oldukça yardımcı olacaklardır.
kolay gelsin
sana kod yazma konusunda yardımcı olamayacağım çünki bu konuda hiç uğraşmadım yani bilmiyorum. Ama senin sayende biraz araştırma yaptım ve şimdi biraz uyumam lazım geceden çıktım kalkınca (kalkmak nasip olursa) bende inceleyip yapmaya çalışacağım. Araştırmada şunları buldum.
http://www.delphiturkiye.com/index.php? ... tetime.htm
- IncMonth : Verilen tarihi, istenilen ay kadar artırır veya azaltır.
o Eğer parametre - verilirse önceki ayları 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 sonrasını döndürür.
o Eğer tarih arttırıldığı zaman verilen gün o ay içerinde yoksa, o ayın son günü döndürülür. Mesela 31/01/2002 tarihini bir ay artırırsanız şubat ayında 31. gün olmadığı için sonuç 28/02/2002 olacaktır.
IncMonth ( Date ) = 03/10/2002
- IncDay : Verilen tarihi istenilen gün kadar artırır veya azaltır. Parametre + verilirse artırır, - verilirse azaltır.
IncDay ( Date ) = 04/09/2002
IncDay ( Date, 3 ) = 06/09/2002
IncDay ( Date, -1) = 02/09/2002
muhakkak usta arkadaşlarımız müsait oldukça yardımcı olacaklardır.
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Aç bi form 12 edit kutusu koy:
edit1 in onexit olayına yaz:
çalıştır gör.
Not: [ay+1] olacaktı. delphiden kopyalarken hata olmuş
Saygılar...
edit1 in onexit olayına yaz:
Kod: Tümünü seç
procedure TForm1.Edit1Exit(Sender: TObject);
const
aylar: array[1..12] of integer = (31,28,31,30,31,30,31,31,30,31,30,31);
var
tarih:tdate;
yil,ay,gun:word;
ii:integer;
artis:integer;
begin
for ii:=2 to 12 do
begin
tarih:=strtodate(Tedit(findcomponent('edit'+inttostr(ii-1))).text);
decodedate(tarih,yil,ay,gun);
if yil mod 4 = 0 then aylar[2]:=29 else aylar[2]:=28;
if gun = aylar[ay] then
begin
artis:=aylar[ay+1];
end
else
begin
if gun > aylar[ay+1] then
begin
artis:=aylar[ay+1];
if gun<>aylar[ay] then artis:=artis+(aylar[ay]-gun);
if artis>aylar[ay+1] then artis:=aylar[ay+1]+(aylar[ay]-gun);
end
else
begin
artis:=aylar[ay];
end;
end;
tarih:=tarih+artis;
//tarih:=incmonth(tarih,1); //incmonth kullanırsan yukarı satırı kapa bunu aç
Tedit(findcomponent('edit'+inttostr(ii))).text:=datetostr(tarih);
end;
end;
çalıştır gör.
Not: [ay+1] olacaktı. delphiden kopyalarken hata olmuş

Saygılar...
En son MicroChip tarafından 22 Eyl 2005 02:32 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kardeş merhaba
Öncelikle ilgine teşekkür ederim. Fakat Run ederken bir türlü çalışmıyor.
Burdan itibaren hata veriyor.
aylar[2]:=29 'da takılıyor.
bir de
artis:=aylar[ bunda eksiklik yok mu?
<-------------------------------------------->
if yil mod 4 = 0 then aylar[2]:=29 else aylar[2]:=28;
if gun = aylar[ay] then
begin
artis:=aylar[
end
else
begin
if gun > aylar[ay+1] then
begin
artis:=aylar[ay+1];
if gun<>aylar[ay] then artis:=artis+(aylar[ay]-gun);
if artis>aylar[ay+1] then artis:=aylar[ay+1]+(aylar[ay]-gun);
end
else
begin
artis:=aylar[ay];
end;
end;
Öncelikle ilgine teşekkür ederim. Fakat Run ederken bir türlü çalışmıyor.
Burdan itibaren hata veriyor.
aylar[2]:=29 'da takılıyor.
bir de
artis:=aylar[ bunda eksiklik yok mu?
<-------------------------------------------->
if yil mod 4 = 0 then aylar[2]:=29 else aylar[2]:=28;
if gun = aylar[ay] then
begin
artis:=aylar[
end
else
begin
if gun > aylar[ay+1] then
begin
artis:=aylar[ay+1];
if gun<>aylar[ay] then artis:=artis+(aylar[ay]-gun);
if artis>aylar[ay+1] then artis:=aylar[ay+1]+(aylar[ay]-gun);
end
else
begin
artis:=aylar[ay];
end;
end;
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
edit2.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),1));
edit3.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),2));
edit4.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),3));
edit5.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),4));
edit6.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),5));
edit7.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),6));
edit8.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),7));
edit9.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),8));
edit10.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),9));
edit11.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),10));
edit12.text:=DateTimeToStr(IncMonth(StrToDateTime(edit1.Text),11));
end;
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
Re: Birbirini takip eden ay ve günler. Ama nasıl???
gamsizgani yazdı:NoT: Ama lütfen "bunu incmonht ile yap" diye kesitrme cevap verme.
dediğin için uğraştım da uğraştım sırf sen incmonth kullanma diye. Ama gel gör ki bayılmışsın

Saygılar...