اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر (معدل)

مرحبا بكم 

استخدمت الدالە 

DateDiff("d",[Date1],[Date2])

حيث يكون الناتج 365 يوم .

هل هنالك دالة اخرى ؟ او اي تغير يطرا على الدالة السابقة ليكون عدد ايام السنة 360 يوم ,

اي انه عندما يكون الفرق بين التاريخين 6 اشهر يكون الناتج 180 يوم , وهكذا عندما يكون الفرق بين التاريخين 4 اشهر يكون الناتج 120 يوم

الى ان يصل كل 1 يوم = 1يوم وليس 1.013888

وشكرا لكم

تم تعديل بواسطه gavan
  • gavan changed the title to هل هنالك دالة في استعلامات الاكسس يعطي الفرق بين تاريخين 360 يوم بدلا من 365 يوم في كل سنة
  • أفضل إجابة
قام بنشر

أعتقد أنه يمكنك ذلك ، من خلال الكود التالي ، قم بالتجربة والرجوع بالنتيجة ( لأنني لا استوعب فكرة أم تكون السنة 360 ، أو اعتبار أن جميع الشهور 30 يوم :wavetowel: ) 

 

Function DateDiff360(date1 As Date, date2 As Date) As Long
    Dim monthsDiff As Long
    monthsDiff = DateDiff("m", date1, date2)
    Dim daysDiff As Long
    daysDiff = DateDiff("d", DateAdd("m", monthsDiff, date1), date2)
    DateDiff360 = monthsDiff * 30 + daysDiff
End Function

ويتم الإستدعاء كالتالي :-

Dim daysDifference As Long
daysDifference = DateDiff360([Date1], [Date2])

 

 

  • Like 1
قام بنشر

شكرا اخي الغالي Foksh

ساطبقها وسارد لك الخبر يالغالي 

ولكنني حللتها بطرقة اخرى ارجوا افادتى اذا كانت صحيحة , ف النتائج عندي جيدة جدا وهي 

Date diff: DateDiff("d",[date1],[date2])/1.0111111111111111111111111

حيث يكون السنة الاولى =360 يوم , و السنة الثانية 721.978021978022 بدلا من 720 يوم و السنة الثالثة 1082.96703296703 بدلا من 1080 يوم

انا ادخلت الحقل الناتج الى دالة  Round و اصبحت النتيجة 100%

تحياتي لك

قام بنشر
منذ ساعه, gavan said:

شكرا اخي الغالي Foksh

ساطبقها وسارد لك الخبر يالغالي 

ولكنني حللتها بطرقة اخرى ارجوا افادتى اذا كانت صحيحة , ف النتائج عندي جيدة جدا وهي 

Date diff: DateDiff("d",[date1],[date2])/1.0111111111111111111111111

حيث يكون السنة الاولى =360 يوم , و السنة الثانية 721.978021978022 بدلا من 720 يوم و السنة الثالثة 1082.96703296703 بدلا من 1080 يوم

انا ادخلت الحقل الناتج الى دالة  Round و اصبحت النتيجة 100%

تحياتي لك

إذا كان الغرض أو الهدف هو الحفاظ على دقة الحسابات وتقليل التعقيد ، فباعتقادي استخدام DateDiff مع Round هو حل جيد وأبسط ، بشرط أن تكون القيمة المستخدمة للتحويل منطقية في سياق تطبيقك . لاحظ أنه في الفرق سيكون معك على المدار الأبعد زيادة في الأيام بشكل بسيط يكاد يكون ملحوظ  .

قام بنشر

جيد جدا اخي الحبيب 

نعم طريقتك يعطي الناتج بالضبط 

على عكس تجربتي حيث يضهر اخطاء عند حدوث كسر في السنة 

تحياتي لك 

قام بنشر
42 دقائق مضت, gavan said:

جيد جدا اخي الحبيب 

نعم طريقتك يعطي الناتج بالضبط 

على عكس تجربتي حيث يضهر اخطاء عند حدوث كسر في السنة 

تحياتي لك 

من باب مشاركة اخي @Foksh واثراء الموضوع :::: جرب هذا
 

DateDiff("m", date1, date2) * 30 + (Day(date2) - Day(date1))

 

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information