الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الفرق بين التاريخين

مغلق
بدأه نظام في 5 نوفمبر 2003 · 11 رد · 1,544 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

قمت بعمل دالة datediff لحساب عدد الأشهر بين التاريخين , فعلى سبيل المثال لو أن التاريخ الأول هو 1\1\2003 والتاريخ الثاني هو 31\12\2003 فإن النتيجة باستخدام الدالة المذكورة هي 11 شهر .

والصحيح هو 12 شهر فما هو الحل

وجزاكم الله خيرا

#2

زود واحد للناتج مثلا

X=DateDiff("M",#1/1/2003#,#12/31/2003#) +1

في هذه الحالة يكون الناتج 12

طبعا هذا حل واحد مبتدىء مثلي وانتظر رأي الخبراء فلا شك ان عندهم الافضل والادق

#3

اشكرك أخي أبو يوسف على تعاونك معي

ولقد قمت بالفعل تجربة هذا الحل ، ولكن تبقى هناك مشكلة في حالة إضافة ( +1 ) على الدالة وهي :

فعلى سبيل المثال لو أن التاريخ الأول هو 1\1\2003 والتاريخ الثاني هو 01\01\2004فإن النتيجة باستخدام الدالة المذكورة وإضافة +1 هي 13 شهرا .

والصحيح هو 12 شهرا لأن اليوم الواحد من السنة الجديدة لا تعتبر شهرا.

وشكرا جزيلا على حرصك لحل هذه المشكلة التي تواجهني

والسلام عليكم

#4

راجع هذ1 الموضوع

http://www.officena.com/ib/index.php?showt...wtopic=1103&hl=

و هذا أيضا

http://www.officena.com/ib/index.php?showt...ic=375&hl=العمر

تم تعديل هذه المشاركة بواسطة محمد طاهر في 9 نوفمبر 2003 في 14:59

#6

ما شاء الله ...شفت الناس اصحاب الخبرة جزاك الله خيرا يا اخ محمد طاهر وعندي استفسار بسيط قمت بوضع مربع نص txth على الفورم في نفس المثال واستخدمت احدى الدوال الوارة في المثال واريد ان اعرف كيف جاء الرقم 91 طبعا انا اعني كيف عملية طرح تاريخين مثل ما وضعت انا ينتج عنها مثل هذا الرقم

#7

اسف نسيت اعادة ارفاق المثال بعد التعديل

Weeks_Diff.rar

#8

الدالة getweekdiff مجهزة لتحسب الفرق بين اي تاريخين

و هذا بحساب الاسابيع السليمة بالكود التالي

Function getweekdiff(d1, d2)
  getweekdiff = Int(d2 - d1) / 7
End Function

و لرؤية الاكواد اضغط alt+F11

أو من وضع تصميم النموذج اختار

View Code

للحصول علي نفس الناتج ، ضع نفس التاريخين فى الجزء الايسر

و اضغط علي الزر ستحصل علي عدد الاسابيع

تم تعديل هذه المشاركة بواسطة محمد طاهر في 10 نوفمبر 2003 في 03:21

#9

عفوا اخي محمد لم تفهم قصدي

انا شاهدت الدالة وطبعا هي ليست من دوال اكسس المضمنه انما دالة تم تعريفها عن طريق المستخدم

Function getweekdiff(d1, d2)

getweekdiff = Int(d2 - d1) / 7

End Function

واعتقد انها تحسب الفرق بالايام ثم تقسم على 7

سؤالي هو

الفرق بين التاريخين 1/1/2003 و 1/12/2003 كيف تحسب الدالة الفرق بالايام بين هذين التاريخين

#10

أشكر الأخوين محمد طاهر وأبو يوسف على مداخلتهما القيمة، ولكني ما زلت أعاني من المشكلة ولم أحصل على الحل المطلوب وهو كيف يمكن جعل الفرق بين التاريخ الأول وهو 1\1\2003 والتاريخ الثاني هو 31\12\2003 ( 12 شهرا ) حيث أن المثال المرفق نتيجته 11 شهرا

وشكرا للجميع

#11

يا جماعة الخير

هل يوجد حل للمشكلة التي ذكرتها

مع الشكر الجزيل

#12

الفرق صحيح بين التاريخين هو 11 شهر

فهو يحسب من 1/1/2003 -1/2/2003 = 1

ومن 1/2/2003-1/3/2003 = 1

فإذا قمت بحسابها يدوياً سيخرج معكا الناتج 11 أيضاً

وهكذا

ولكن إذا أردت شيئاً آخر فاستخدم هذه الطريقة ولكني لا أضمنها ..

والطريقة هي بالقسمة على 30 .. ولا أضمنها لأن الشهور تختلف بعضها 31 و 28 و 30 بالميلادي .. و 29 و 30 بالهجري

باستخدام العبارة التالية

DateDiff("d", Date1,Date2) \ 30

تم تعديل هذه المشاركة بواسطة أحمد الحربي في 1 ديسمبر 2003 في 15:24

هذا الموضوع مغلق.

مواضيع مشابهة