18-08-2019, 04:50 PM
(17-08-2019, 06:15 PM)medreg كتب : اولا اعتذر
عيدكم مبارك وسعيد وكل عام وانتم والامة الاسلامية بالف خير
نسأل الله العلي القدير ان يعيده علينا بالخير والسعادة أمـــين
ملاحطة
لماذا عندما يكون التاريخ الاول يساوي 01/01/2011 والتاريخ الثاني يساوي 28/02/2011 تكون النتيجة 1 شهر واحد
مادا افعل حتى تصبح النتيجة 2 شهران بدلا من شهر انا اضفت في الكود +1 كما هو مبين في المرفق ولا اعرف ان كان منطقي ام لا
ارجو الرد بارك الله فيكم لأني بحاجة ماسة لهذا الكود
جزاكم الله عنا كل خير
كما رد أخونا onexite
للزيادة، هناك إجراءات في الدلفي تمكنك من معرفة الفرق بين تاريخين (عدد الأيام، عدد الشهور، عدد السنين ....)
فيما يهمك هما: (أنقر على كل كلمة لقراءة التوثيق الرسمي)
عدد الشهور: MonthsBetween
عدد السنين: YearsBetween
وحسب ما تريده هو أن يعد الشهر الأخير ضمن الحساب لذلك هناك الإجراء MonthSpan (كذلك بخصوص حساب السنة الأخيرة YearSpan)
لذلك لا تحتاج لكل الكود الذي كتبته في برنامجك، ويصبح كالتالي:
PHP كود :
procedure TForm1.AdvSmoothButton1Click(Sender: TObject);
begin
with DM Do
begin
Tb1.Edit;
Tb1.Fieldvalues['AnneeGanier'] := YearSpan(Tb1.Fieldvalues['Dt_Debut'], Tb1.Fieldvalues['Dt_Dernr']);
Tb1.Fieldvalues['MoisGanier'] := MonthSpan (Tb1.Fieldvalues['Dt_Debut'], Tb1.Fieldvalues['Dt_Dernr']);
Tb1.post;
end;
end;
ملاحظة: سيعمل الكود الجديد بشكل جيد، لكن لمن أراد أن يستعمل هاته الإجراءات يضيف الوحدة System.DateUtils في Uses

