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

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

قام بنشر

السلام عليكم اساتذتى الكرام اود ان اقدم لكم اليوم دالة أعجبتنى -وتقوم هذه الدالة بتحويل التقويم الميلادى الى التقويم القبطى

ومن هنا لابد ان نعرف التقويم القبطى ولابد ان نقول نبذة عنه

تبدأ السنة الجديدة عادة في 29 أغسطس، عدا السنة التي تسبق السنة الكبيسة حيث تبدأ في 30 أغسطس.

للحصول على رقم السنة القبطية، يُطرح من رقم السنة اليوليانية إما 283 (قبل السنة اليوليانية الجديدة) أو 284 (بعدها).

ويتكون التقويم القبطى من 13 شهر كالتالى :

image.png.814de4b6cbcf84808eb3fc2b6f4f917e.png

وهذا هو كود الدالة المستخدمة فى تحويل التاريخ من الميلادى الى القبطى

Option Explicit
Function CopticDate(WkDate As Date) As String
Const YDiff = 284
Dim DateList As Object
Set DateList = CreateObject("System.Collections.Sortedlist")
Dim T, TT
Dim I As Integer, II As Integer
Dim WkY As Integer
Dim WkM As String
Dim WkD As Integer

With Sheets("Data")
For I = 1 To 13
T = Split(.Cells(I + 1, 3), "/")
DateList.Add DateSerial(Year(WkDate), T(1), T(0)) * 1, .Cells(I + 1, 4)
Next I
End With
WkY = Year(WkDate) - YDiff
With DateList
TT = WkDate * 1
If (TT >= .GetKey(.Count - 1)) Then
WkM = .GetByIndex(0)
WkD = TT - .GetKey(.Count - 1) + 1
Else
If (TT <= .GetKey(0)) Then
WkM = .GetByIndex(.Count - 1)
II = TT - DateSerial(Year(WkDate), 1, 1) ' FIRST day of the year = 101
WkD = DateSerial(Year(WkDate), 12, 31) - .GetKey(.Count - 1) + II ' LAST day of the year = 1231

Else
For I = 0 To 12
If ((TT > .GetKey(I)) And (TT <= .GetKey(I + 1))) Then
WkM = .GetByIndex(I + 1)
WkD = TT - .GetKey(I)
Exit For
End If
Next I
End If
End If
End With
CopticDate = WkM & "/ " & WkD & "/ " & WkY
End Function

وتستخدم بهذه المعادلة

=CopticDate()

 

 

convert the Christmas calendar to the Coptic calendar.xlsm

 

  • Like 5

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information