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

توزيع الايام الى ايام واشهر وسنوات


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

اسعدالله اوقات الجميع بكل خير
عندي خانه فيها عدد الايام ارغب عند الضغط على احسب يقوم البرنامج بتوزيع الايام الى ( ايام - اشهر - سنوات)
وشاكرللجميع

توزيع الايام الى تاريخ.accdb

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

مشاركة مع اخي وحبيبي الاستاذ خليفة

على اعتبار الشهر 30 يوما

Me.DateY = Me.Text1 \ 360
Me.DateM = (Me.Text1 Mod 360) \ 30
Me.DateD = Me.Text1 Mod 360 Mod 30

 

توزيع الايام الى تاريخ.rar

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

1 ساعه مضت, سلمان الشهراني said:

عندي خانه فيها عدد الايام ارغب عند الضغط على احسب يقوم البرنامج بتوزيع الايام الى ( ايام - اشهر - سنوات)

Private Sub com1_Click()
Call YMD(Me.Text1.Value)
End Sub
Function YMD(No As Integer) As Variant
    Dim Y As Long
    Dim M As Long
    Dim D As Long
    Y = Int(No / 365.25)
    M = Int((No - (Int(No / 365.25) * 365.25)) / 30.4375)
    D = No - ((Y * 365.25) + (M * 30.4375))
    YMD = Y & " years " & M & " months " & D & " days"
Me.DateD = D
Me.DateM = M
Me.DateY = Y
End Function

 

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

ولمجرد المشاركة هذه فكرتي لتحويل الأيام إلى سنوات وشهور 🙂 

image.png.b1a4e8598ee16a5463d5ca346e9b3fe8.png

تعتمد الفكرة على إضافة عدد الأيام المعطى لتاريخ اليوم ثم يتم حساب الفترة بين التاريخين ( من تاريخ اليوم وحتى عدد الأيام المعطاه )

بدون الحاجة لافتراض أن الشهر 30 يوم ، بل يتم الحساب بعدد الأيام الفعلية للأشهر المقبلة.

Public Function DaysToYMD(NumberOfDays As Long) As String
'لتحويل الأيام إلى سنوات وشهور وأيام

    Dim EndDate As Date
    Dim years As Integer
    Dim months As Integer
    Dim days As Integer
    Dim intH As Integer
    
'إضافة عدد الأيام لليوم الحالي
    EndDate = DateAdd("d", NumberOfDays, Date)

' حساب المدة بين التاريخين
    intH = Int(DateDiff("m", Date, EndDate)) + _
              (EndDate < DateSerial(Year(EndDate), Month(EndDate), Day(Date)))
    
    years = Int(intH / 12)
    months = intH Mod 12
    
    days = DateDiff("d", DateAdd("m", intH, Date), EndDate)
    
    DaysToYMD = years & " سنة و " & months & " أشهر و " & days & " يوم"
    'MsgBox " المدة :     " & DaysToYMD
End Function

طريقة الاستخدام هكذا :

DaysToYMD(500)

 

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

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