İki tarih arasındaki fark
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
İki tarih arasındaki fark
herkese Merhabalar;
veritabanım Ms SQL Server,
edit1:=bugunun tarihi
edit2.text:=işe giriş tarihi
edit3.text:=kaç yıl kaç ay kaç gün çalışmış
verilen iki tarih arasındaki yıl, ay,gün olarak nasıl alabilirim.? herkese şimdiden teşekkürler
veritabanım Ms SQL Server,
edit1:=bugunun tarihi
edit2.text:=işe giriş tarihi
edit3.text:=kaç yıl kaç ay kaç gün çalışmış
verilen iki tarih arasındaki yıl, ay,gün olarak nasıl alabilirim.? herkese şimdiden teşekkürler
merhaba,
iyi çalışmalar.
Kod: Tümünü seç
fark := tarih1-tarih2; //tarihler double olarak tutulduğundan aradaki farkı alalım
gun := fark mod 30; //her ayın 30 gün olduğu kabul edildi.
ay := (fark div 30) mod 12;
yil := (fark div 30) div 12;
Kod: Tümünü seç
var
fark: Double;
begin
fark := tarih1.date-tarih2.date;
Merhaba,
hesaplamaya başlamadan önce
şeklinde stringi tarihe dönüştürmeniz lazım.
Kolay gelsin.
hesaplamaya başlamadan önce
Kod: Tümünü seç
baslama :=strtodate(edit1.text);
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
Kabaca şu şekilde olabilir sanırım.
Kod: Tümünü seç
islem := trunc(strtodate(edit1)) - trunc(strtodate(edit2));
gun := islem mod 30; //her ayın 30 gün olduğu kabul edildi.
ay := (islem div 30) mod 12;
yil := (islem div 30) div 12;
Merhaba,
Arkadaşlar ayı 30 olarak aldıkları için bir yılda 5 gün 6 yılda 30 gün farkediyor. Ayrıca 2000 ve 2004'te şubat 29 çektiğinden 2 gün de ordan farkediyor.
Tabi demokraside çareler tükenmez
Aşağıdaki programcıkla istediğiniz tam 6 yıla kavuşabilirsiniz.
Ben tam teşekküllü olarak test etmedim. Ama sizin verdiğiniz aralıkta yani 01.01.2000 ve 01.01.2006 tarihleri arasını 0 gün 0 ay ve 6 yıl veriyor. Yani matematik dersinde yaptığımız çıkarmayı yapıyor. Artık test edip hatasını bulmak da sizden olsun. 
Kolay gelsin.
Arkadaşlar ayı 30 olarak aldıkları için bir yılda 5 gün 6 yılda 30 gün farkediyor. Ayrıca 2000 ve 2004'te şubat 29 çektiğinden 2 gün de ordan farkediyor.
Tabi demokraside çareler tükenmez

Aşağıdaki programcıkla istediğiniz tam 6 yıla kavuşabilirsiniz.

Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
islem,gun,ay,yil:integer ;
artiklar:integer;
basyili,basAyi,basGunu,bitYili,bitAyi,bitGunu:word;
begin
artiklar:=0;
decodedate(trunc(strtodate(edit2.text)),basyili,basayi,basgunu);
decodedate(trunc(strtodate(edit1.text)),bityili,bitayi,bitgunu);
if isleapyear(basyili) then artiklar:=artiklar+1;
artiklar:=artiklar+trunc((bityili-basyili)/4);
islem := trunc(strtodate(edit1.text)) - trunc(strtodate(edit2.text));
islem:=islem-((bityili-basyili)*5)-artiklar;
gun := islem mod 30; //her ayın 30 gün olduğu kabul edildi.
ay := (islem div 30) mod 12;
yil := (islem div 30) div 12;
label1.Caption:=inttostr(gun);
label2.Caption:=inttostr(ay);
label3.Caption:=inttostr(yil);
end;

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis