ايران ويج

نسخه‌ی کامل: دلفی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
میخواهم دو تاریخ را در فیلد های یک table از هم کم کنم؟؟؟
تاريخ رو با چه فرمتي ذخيره كرديد؟
ببین این به دردت میخوره؟
function TfrmMain.Duration(y1,m1,d1,y2,m2,d2:Integer):Integer;
var
day:integer;
begin
day:=d2-d1;
if m2>m1 then
begin
if m2<7 then
day:=31-d1+d2+(m2-m1-1)*31;
if m1>6 then
day:=30-d1+d2+(m2-m1-1)*30;
if (m2>6) and (m1<=6) then
day:=31-d1+(6-m1)*31+(m2-7)*30+d2;
end;
if y2>y1 then
begin
if y1 mod 4=3 then
begin
if (m1<7) and (m2<7) then
day:=31-d1+(6-m1)*31+180+(m2-1)*31+d2;
if (m1<7) and (m2>6) then
day:=31-d1+(6-m1)*31+180+186+(m2-7)*30+d2;
if (m1>6) and (m2<7) then
day:=30-d1+(12-m1)*30+(m2-1)*31+d2;
if (m1>6) and (m2>6) then
day:=30-d1+(12-m1)*30+186+(m2-7)*30+d2;
end
else
begin
if (m1<7) and (m2<7) then
day:=31-d1+(6-m1)*31+179+(m2-1)*31+d2;
if (m1<7) and (m2>6) then
day:=31-d1+(6-m1)*31+179+186+(m2-7)*30+d2;
if (m1>6) and (m2<7) then
day:=30-d1+(12-m1)*30-1+(m2-1)*31+d2;
if (m1>6) and (m2>6) then
day:=30-d1+(12-m1)*30-1+186+(m2-7)*30+d2;
end
end;
result:=day;
end;
من فکر می کنم اگه فیلدها از نوع تاریخ باشند به راحتی مثل کم کردن دو تا عدد می شه از آنها کم یا زیاد کرد
1. DB شما چی هست ؟
2. تاریخ رو میلادی می خواهید ذخیره کنید؟

راحت ترید از توابع DB تون استفاده کنید (اگر پشتیبانی میکنه).
دوست عزیز شما باید از خاصیت calculated field پایگاه داده استفاده کنی

یک table رو فرمت بزار و روی اون دوبار کلیک کن وقتی تمام ارتباطاط رو برقرار کردی مثلا datasource , dataconnection ,....حالا روش دوبار کلیک کن تمام فیلدهات رو میاره دوباره راست کلیک کن و یک فیلد جدید بساز

از نوع integer و calculated وقتی این کار رو انجام دادی در properties جدولت روی oncalc کلیک کن و در آخر بنویس

datasource1.dataset['field_jadid']:=datasource1.dataset['a']-datasourcew1.dataset['b']end
امیدوارم بدردت خورده باشه