كيف يمكن أن أطرح تاريخ من تاريخ وأحصل على النتيجة بالأيام
أي 10/10/2005
05/10/2005 -
_______________
5 أيام
وشكرا للمنتدى
كيف يمكن أن أطرح تاريخ من تاريخ وأحصل على النتيجة بالأيام
أي 10/10/2005
05/10/2005 -
_______________
5 أيام
وشكرا للمنتدى
1 2 me and u r alone
1 2 u a i a a
هذا مثال يوضح كيفية استعمال التاريخ كسلسلة محرفية في عملية الطرح.
يجب ان نحول السلسلة المحرفية إلى صنف TDate مما سيسهل كثيرا التعامل معها كقيم عددية.
نستخدم الدالة StrToDate لهذا الغرض.
يجب على السلسلة المحرفية التي تعبر عن التاريخ أن تحوي قيمة فعلية تتوافق مع نموذج المعرف في باراميتر بديلفي وهو ShortDateFormat و كذلك مع DateSeparator.
:lol:
سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين
يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.
اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.
الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.
إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.
و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله
أخوكم مراد
أفضل حل لك هو استخدام دالة DaysBetween
وهي ترجع لك عدد الأيام بين تاريخين...
لمزيد من المعلومات
http://delphi.about.com/library/rtl/blrtlDaysBetween.htm
بالتوفيق.
Almatrodi كتب:أفضل حل لك هو استخدام دالة DaysBetweenوهي ترجع لك عدد الأيام بين تاريخين...
دالة ممتازة يا أخي Almatrodi , غير أنها تحسب الفرق بين وقتين وليس بين تاريخين, والناتج من هذه الدالة هو عدد الأيام.
فمثلا الفرق ما بين 31 دجنبر 2004 بتوقيت 23h59 و 1 يناير 2005 بتوقيت23h58, هو 0 يوم. هذا لأن الناتج هو بالساعات . 23h59. أي لم يكتمل يوم وتنقصه دقيقة.
الظاهر من سؤال الأخ /الأخت mahmola أن المطلوب هو الفرق بين تاريخين دون اعتبار للتوقيت بالساعات أو الدقائق.
سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين
يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.
اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.
الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.
إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.
و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله
أخوكم مراد
الطريقة الأسهل هي :
إذا كان لديك التاريخين في متحولين من نمط TdateTime مثلاً d1,d2:TdateTime
يكون الفرق بين التاريخين هو
difference:= trunc(d1)-trunc(d2);
جرب
إذا كان لديك التاريخين في متحولين من نمط TdateTime مثلاً d1,d2:TdateTime
يكون الفرق بين التاريخين هو
CODE
difference:= d1-d2
اخي الكريم
يمكنك أن تستخدم الدالة DaysBetween لحساب الوقت بين تاريخين معينين و لكن إذا تساوى التاريخ فإنه يعيد الناتج بصفر
Var RecentDate,OldDate:TdateTime; Days=DaysBetween(RecentDate,OldDate); Example RecentDate:=29/12/2004 23:30; OldDate :=29/12/2004 10:00; Days=0; RecentDate:=29/12/2004 00:15; OldDate :=28/12/2004 23:59; Days:=1
هذه الدالة لا تهتم بالوقت و إن كنت قد إستخدمته للتوضيح, فهو في الحقيقة يتعامل مع الجزء الخاص بالتاريخ فقط .
ملاحظة أخرى : هذه الدالة لا تعين لك ترتيبا معينا في تمرير التواريخ فعلى سبيل المثال :
Days=DaysBetween(RecentDate,OldDate); Days=DaysBetween(OldDate,RecentDate);
كلاهما يعيد نفس النتيجة.
أرجو أن يكون شرحي واضحا..
تحياتي للجميع
procedure TForm2.Button1Click(Sender: TObject);
var
DateBegin ,DateEnd: TDate ;
I:integer;
begin
DateBegin:= StrToDate(Edit1.Text);
DateEnd:=StrToDate (Edit2.Text);
ShowMessage(inttostr(DaysBetween(DateBegin,DateEnd)));
end;
// يجب لدخال المثال التالي
the First date{05-10-2006}
the Secand date{10-10-2006}
then Result is = 5 Days
// Sami Abu Eleiwa
// Sami_Eleiwa@hotmail.com
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…