free_voice
2012-02-20, 18:09
السّلام عليكم ورحمة الله
بعد موافقة الأخ محمّد أسعد
من منتدى فجوال بيسك
جزاه الله كل خير على عدم امتناعه على مشاركتنا
بخبرته هنا في منتدنا
تمّ نقل هذا الموضوع القيّم عن كيفيّة استعمال الخوارزميات في معرفة اسم اليوم فقط بإعطاء التاريخ
و سيتم لاحقا اضافة اقتباسات أخرى لهذا الخبير
المتواضع
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في هذا الموضوع ساتحدث عن كيفية جلب اسم اليوم من تاريخ معين
اولا نقوم بصنع بناءة xDate والتي تحتوي اليوم والشهر والسنة
Structure xDate
Public Year As UInteger
Public Month As UInteger
Public Day As UInteger
End StructurePublic Shared Function GetJDDaysNo(ByVal MyDate As xDate) As Integer
Dim JD As Integer
If ((MyDate.Year > 1582) Or ((MyDate.Year = 1582) And (MyDate.Month > 10)) Or ((MyDate.Year = 1582) And (MyDate.Month = 10) And (MyDate.Day > 14))) Then
JD = Int((1461 * (MyDate.Year + 4800 + Int((MyDate.Month - 14) / 12))) / 4)
JD = JD + Int((365.5 * (MyDate.Month - 2 - 12 * (Int((MyDate.Month - 14) / 12)))) / 12)
JD = JD - Int((3 * (Int((MyDate.Year + 4900 + Int((MyDate.Month - 14) / 12)) / 100))) / 4)
JD = JD + MyDate.Day - 32075
Else
JD = 365.5 * MyDate.Year
JD = JD - Int((7 * (MyDate.Year + 5001 + Int((MyDate.Month - 9) / 7))) / 4)
JD = JD + Int((275 * MyDate.Month) / 9) + MyDate.Day + 1729777
End If
Return JD
End Function
وبعد ان قمنا بتحويل التاريخ الميلادي الى اليولياني نقوم الان بعمل دالة لمعرفة اسم اليوم
والفكرة كالتالي:
نقوم بحساب باقي قسمة عدد الايام باليولياني على 7
وان كانت تساوي 0 فاليوم يكون الاثنين وان كانت 1 فياليوم الثلاثاء وهكذا......
Shared Function GetDayName(ByVal Mydate As xDate) As String
Dim xJD As Integer = GetJDDaysNo(Mydate) Mod 7
Select Case xJD
Case 0 : Return "Monday"
Case 1 : Return "Tuesday"
Case 2 : Return "Wednsday"
Case 3 : Return "Thursday"
Case 4 : Return "Friday"
Case 5 : Return "Saturday"
Case 6 : Return "Sunday"
Case Else : Return "UnKnown"
End Select
End Function
في الدالة الاخيرة نقوم بتمرير التاريخ من نوع xDate الذي عرفناه في البداية
ثم نقوم بحساب عدد الايام باليولياني من خلال الدالة GetJDDaysNo
وبعد ذلك نرجع اسم اليوم وفق ناتج القسمة
بعد موافقة الأخ محمّد أسعد
من منتدى فجوال بيسك
جزاه الله كل خير على عدم امتناعه على مشاركتنا
بخبرته هنا في منتدنا
تمّ نقل هذا الموضوع القيّم عن كيفيّة استعمال الخوارزميات في معرفة اسم اليوم فقط بإعطاء التاريخ
و سيتم لاحقا اضافة اقتباسات أخرى لهذا الخبير
المتواضع
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في هذا الموضوع ساتحدث عن كيفية جلب اسم اليوم من تاريخ معين
اولا نقوم بصنع بناءة xDate والتي تحتوي اليوم والشهر والسنة
Structure xDate
Public Year As UInteger
Public Month As UInteger
Public Day As UInteger
End StructurePublic Shared Function GetJDDaysNo(ByVal MyDate As xDate) As Integer
Dim JD As Integer
If ((MyDate.Year > 1582) Or ((MyDate.Year = 1582) And (MyDate.Month > 10)) Or ((MyDate.Year = 1582) And (MyDate.Month = 10) And (MyDate.Day > 14))) Then
JD = Int((1461 * (MyDate.Year + 4800 + Int((MyDate.Month - 14) / 12))) / 4)
JD = JD + Int((365.5 * (MyDate.Month - 2 - 12 * (Int((MyDate.Month - 14) / 12)))) / 12)
JD = JD - Int((3 * (Int((MyDate.Year + 4900 + Int((MyDate.Month - 14) / 12)) / 100))) / 4)
JD = JD + MyDate.Day - 32075
Else
JD = 365.5 * MyDate.Year
JD = JD - Int((7 * (MyDate.Year + 5001 + Int((MyDate.Month - 9) / 7))) / 4)
JD = JD + Int((275 * MyDate.Month) / 9) + MyDate.Day + 1729777
End If
Return JD
End Function
وبعد ان قمنا بتحويل التاريخ الميلادي الى اليولياني نقوم الان بعمل دالة لمعرفة اسم اليوم
والفكرة كالتالي:
نقوم بحساب باقي قسمة عدد الايام باليولياني على 7
وان كانت تساوي 0 فاليوم يكون الاثنين وان كانت 1 فياليوم الثلاثاء وهكذا......
Shared Function GetDayName(ByVal Mydate As xDate) As String
Dim xJD As Integer = GetJDDaysNo(Mydate) Mod 7
Select Case xJD
Case 0 : Return "Monday"
Case 1 : Return "Tuesday"
Case 2 : Return "Wednsday"
Case 3 : Return "Thursday"
Case 4 : Return "Friday"
Case 5 : Return "Saturday"
Case 6 : Return "Sunday"
Case Else : Return "UnKnown"
End Select
End Function
في الدالة الاخيرة نقوم بتمرير التاريخ من نوع xDate الذي عرفناه في البداية
ثم نقوم بحساب عدد الايام باليولياني من خلال الدالة GetJDDaysNo
وبعد ذلك نرجع اسم اليوم وفق ناتج القسمة