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

الفرق بين تاريخين " ايام + شهور "


wknaoomi

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

ارجو المساعدة في المرفق ، بعد ادخال تاريخ البداية ثم تاريخ النهاية يتم طرح التاريخين بحيث يكون الناتج " عدد الايام" و " عدد الشهور " فقط فمثلاً اذا كان تاريخ البداية = 2000/01/01 ، تاريخ النهاية = 2005/01/15 فيكون الناتج : "الايام = 14يوم" ، " الشهور = 60 شهر " مع الشكر والتقدير لمنتدانا العظيم

_______.rar

رابط هذا التعليق
شارك

اولا بعد حمد الله وشكره ،، اشكرك اخي الفاضل /Dream-Works علي اهتمامك .

ثانيا : قد يوجد مشكلة معينة في التطبيق ولا ادري سببها ، وهي بعد ادخال تاريخ البداية تظهر الرسالة " run-time error 94: invalid use of null"

ثانيا: هل يمكن بعد ادخال التاريخين وبعد طرحهما تنتج قيمة ( عدد الشهور والايام بمربع نص واحد ) بمعني :

تاريخ البداية مثلا 2000/01/01

تاريخ النهاية مثلا 2005/05/14 .

يكون الناتج بمربع نص واحد " 60.15" مع ملاحظة ان عدد الايام لم يتم طرحها حسابيا انما تم حسابها علي انها مدة فعلية انقضت ومرت .

مع اطيب الامنيات .

رابط هذا التعليق
شارك

ثانيا : قد يوجد مشكلة معينة في التطبيق ولا ادري سببها ، وهي بعد ادخال تاريخ البداية تظهر الرسالة " run-time error 94: invalid use of null"

أعتذر منك أخي الكريم لأنني لم أنتبه لمعالجة هذه النقطه ... إذا كان أحد حقول التواريخ فارغاً يتم تفرغة حقل الناتج تلقائياً حتى يتم تعبئة الحقلين معاً ... أرجو أن يكون هذا هو المطلوب في هذه الحالة

ثانيا: هل يمكن بعد ادخال التاريخين وبعد طرحهما تنتج قيمة ( عدد الشهور والايام بمربع نص واحد ) بمعني :

تاريخ البداية مثلا 2000/01/01

تاريخ النهاية مثلا 2005/05/14 .

يكون الناتج بمربع نص واحد " 60.15" مع ملاحظة ان عدد الايام لم يتم طرحها حسابيا انما تم حسابها علي انها مدة فعلية انقضت ومرت .

باعتقادي أن طريقة الحسبة الموجوده بالحل تفي بالغرض لذلك جمعت النتيجتين في مربع نص واحد

ملحوظة : الناتج سيظهر بالسالب إذا كان تاريخ البدايه أكبر من تاريخ النهاية لذلك وضعت رسالة خطأ و مسحت البيانات من حقل الناتج حتى يتم الإدخال الصحيح

أرجو أن يكون هذا المطلوب

_______.zip

تم تعديل بواسطه Dream_Works
رابط هذا التعليق
شارك

اخي الكريم ... اشكرك للتواصل

عند تنفيذ التطبيق ولنقل مثلا :

تاريخ البداية 23/12/2004 - تاريخ النهاية 14/07/2009

تظهر الرسالة : Run-Time error "6" OverFlow هذا من ناحية أما الاخري فان " الايام " لم تحسب علي انها ايام انقضت بمعني اوضح :

ان تاريخ البداية يبدأ بـ " 23 " هذا لابد ان يحسب من الايام المنقضية ، وتاريخ النهاية كذلك بدأ بـ " 14 " لابد ان يحسب ايضاً ...

اذن النتيجة النهائية ستكون ( 65.10) ..

اضافة : هل يمكن اعتبار محتوي مربع النص الموجود به النتيجة النهائية ، ارقام يتم اجراء عمليات حسابية عليها بعد ذلك ؟

كل الشكر والتقدير للتواصل

رابط هذا التعليق
شارك

أعتذر منك أخي الكريم

لاحظت وجود خطأ في حسبة الفرق بين تاريخين في الأكسيس و إظهار النتائج بالشهور ... فإنه لا يضع فرق الأيام بعين الاعتبار ... مثلاً

تاريخ البدية : 5 / 5 / 2008

تاريخ النهاية : 1 / 1 / 2008

يظهر الفرق 5 شهور ... مع أنه في الحقيقة أربعة شهور و 26 يوم تقريباً

لذلك وضعت بعض التعديلات في الكود أرجو أن تضعها لديك

Private Sub CalculateDate()
Dim aDate As Date, MonthDiff As Integer, DaysDiff As Byte
With Me
If IsNull(.date1) Or IsNull(.date2) Then
.TxtAll = ""
Exit Sub
End If
If .date1 > .date2 Then
MsgBox "يجب أن يكون تاريخ البداية <= تاريخ النهاية", vbInformation
.TxtAll = ""
Exit Sub
End If
MonthDiff = DateDiff("m", .date1, .date2)
aDate = DateAdd("m", MonthDiff, .date1)
If aDate > .date2 Then
aDate = DateAdd("m", -1, aDate)
MonthDiff = MonthDiff - 1
End If
DaysDiff = DateDiff("d", aDate, .date2)
.TxtAll = MonthDiff & " . " & DaysDiff
End With
End Sub

رابط هذا التعليق
شارك

اخي الكريم : Dram_Worksلقد بذلت جهدا كبيرا أشكرك كثيرا عليه ، ولكنني احب ان اضيف واطلب من اخر تعديل وصلنا اليه :

هل يمكن اعتبار محتوي مربع النص الموجود به النتيجة النهائية ، ارقام يتم اجراء عمليات حسابية عليها بعد ذلك بمعني مثلا لوكانت النتيجة : 7.15 هل يمكن

ادخال تلك النتيجة في عمليات ضرب وقسمة وطرح ... الخ

وفقك الله .. وعافاك

رابط هذا التعليق
شارك

في هذا المثال تم ضرب رقم الشهر * 24 و إضافة 15 إلى رقم اليوم

المسأله تتطلب بعض الإلمام بكيفية كتابة الكود ... ممكن ترسل طلبك بالتحديد في هذا المنتدى و سيرد عليك الأعضاء بالجواب

Private Sub CalculateDate()
Dim aDate As Date, MonthDiff As Integer, DaysDiff As Byte
With Me
If IsNull(.date1) Or IsNull(.date2) Then
.TxtAll = ""
Exit Sub
End If
If .date1 > .date2 Then
MsgBox "يجب أن يكون تاريخ البداية <= تاريخ النهاية", vbInformation
.TxtAll = ""
Exit Sub
End If
MonthDiff = DateDiff("m", .date1, .date2)
aDate = DateAdd("m", MonthDiff, .date1)
If aDate > .date2 Then
aDate = DateAdd("m", -1, aDate)
MonthDiff = MonthDiff - 1
End If
DaysDiff = DateDiff("d", aDate, .date2)
MonthDiff = MonthDiff * 24
DaysDiff = DaysDiff + 15
.TxtAll = MonthDiff & " . " & DaysDiff
End With
End Sub

رابط هذا التعليق
شارك

السلام عليكم

إشارة لإذن استاذنا Dream-Works لنا بالدخول

الأخ الكريم /

اقتباس : ( بمعني مثلا لوكانت النتيجة : 7.15 هل يمكن ادخال تلك النتيجة في عمليات ضرب وقسمة وطرح ... الخ ) كل شيء ممكن ولكن انتبه !!!

الرقم 15 ليس كسرا عشريا ولكنه أجزاء من ثلاثين جزء فكيف تجري عليه العمليات الحسابية لأن قيمته الفعلية

50% أي نصف شهر ( هل كلامي صحيح ؟؟؟)

يعني لا بد من قسمة الــ 15 على 30 ثم اجر العمليات الحسابية كيف شئت

ولا يتسنى لك هذا إلا بالفصل أولا ثم التجميع بعد ذلك

إن كان كلامي هذا في محله أخبرني حتى ارفق لك التعديل .

تم تعديل بواسطه أبو الأنس
رابط هذا التعليق
شارك

جهد رائع للاخ الكريم Dream-Works لا بد وان اشكرك عليه كثير الشكر .. ولكنك اخي الكريم قمت بتثبيت القيمة " 3.34" وانا اريد ان تكون هذه القيمة متغيره ومعني ما اقصده موجود بالملف المرفق .

لايفوتني ان اشكر الاخ الكريم/ ابوالانس .. وحقيقة انك توصلت لمبتغاي ولكن ماريده فعلا كما تقول ولكن بدون فصل .. ارجو الاطلاع علي الملف المرفق

_______2.rar

رابط هذا التعليق
شارك

السلام عليكم

اقتباس .... Dream-W orks لا بد وان اشكرك عليه كثير الشكر ..

ومني الشكر لأخي Dream-W orks على هذا النشاط والجهود الظاهرة جعلها الله في ميزان أعماله .

إليك مثالك بعد التعديل

_______2.rar

رابط هذا التعليق
شارك

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

مجهود كريم من اخوة الكرم (Dream_Works و أبوالانس ) .

التعديل الاخير بالمثال كان تعديل رائع وقد قمت باجراء تعديل بسيط به ليجعل الناتج ( كما اريد ) قيمة رقمية استطيع عمل عمليات مالية عليها فيما بعد

وكان قصد الاخ الكريم / ابوالانس منطقيا ، ولكن ما كنت اريده هو مراد اخر موجود بالمرفق .

لا يسعني الا ان اشكر الله والاخوة الكرام بما يثري هذا العلم تحت ريادة هذا المنتدي واعضاؤه .. وفق الله الجميع

_______2.rar

رابط هذا التعليق
شارك

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