منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : التعامل مع التاريخ الهجري في اظهار اسم اليوم
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

مرفق مثال للتعامل مع التاريخ الهجري في اضافة اسم اليوم حسب التاريخ

مع زيادة عدد الايام واحتساب الفرق 

واظهار اسم اليوم بعد الزيادة

آمل التعديل على المثال مع العلم ان في المثال توضيح للمطلوب
قم باستبدال كود منطقة 
DateTimePicker1_ValueChanged
بالكود التالى
كود :
Dim dateGregorian As Date = DateTimePicker1.Text
       Dim Y As String = dateGregorian.Year
       Dim M As String = dateGregorian.Month
       Dim D As String = dateGregorian.Day
       Dim ci As New Globalization.CultureInfo("ar-SA")
       Dim dateHijri As New DateTime(Y, M, D)
       Dim NameDay As String = dateHijri.ToString("ddd", ci)
       lblDayName.Text = NameDay
       '---إضافة عدد الايام للتاريخ الجديد
       lblDateAddDay.Text = DateTimePicker1.Value.AddDays(+txtAddDates.Text)

تحياتى لك
وتمنياتى لك التوفيق
جزاك الله خير على المشاركة

ولكن في اداة DateTimePicker يظهر تاريخ اليوم ومقابلة اليوم صحيح 
على سبيل المثال يوم 1439/10/10 يوافق يوم الاحد

وبعد تنفيذ الكود اعطاني ويم السبت

//////

وايظاً التاريخ بعد الزيادة اعطاني التاريخ بتنسيق 11/11/1439 
والمطلوب 1439/11/11

\\\\\\

ولم يعطني اسم اليوم المقابل له

بالنسبة للاخير اضفت 

 lblDateAddDay.Text = DateTimePicker1.Value.AddDays(+txtAddDates.Text).ToString("yyyy/MM/dd")

ومشي الحال

ايظاً الفقرة الاولى تم حلها 



dim dateGregorian as Date = me.DateTimePicker1.Value


كانت 

dim dateGregorian as Date = me.DateTimePicker1.Value.AddDays(-1)
جرب هذا الكود 

كود :
       Dim dateGregorian As Date = Me.DateTimePicker1.Value
       Dim hijri As New UmAlQuraCalendar()
       Dim Y As String = dateGregorian.Year
       Dim M As String = dateGregorian.Month
       Dim D As String = dateGregorian.Day
       Dim dateHijri As Date = New Date(Y, M, D, hijri)
       Dim NameDay As String = dateHijri.ToString("dddd")
       Me.lblDayName.Text = NameDay

       '---إضافة عدد الايام للتاريخ الجديد
       Dim newdate As Date = DateTimePicker1.Value.AddDays(Val(txtAddDates.Text))
       lblDateAddDay.Text = newdate.ToString("yyyy/mm/dd")
       lblDayName.Text = newdate.ToString("ddd")
(30-05-18, 11:38 AM)aftfm كتب : [ -> ]جزاك الله خير على المشاركة

ولكن في اداة DateTimePicker يظهر تاريخ اليوم ومقابلة اليوم صحيح 
على سبيل المثال يوم 1439/10/10 يوافق يوم الاحد

وبعد تنفيذ الكود اعطاني ويم السبت

//////

وايظاً التاريخ بعد الزيادة اعطاني التاريخ بتنسيق 11/11/1439 
والمطلوب 1439/11/11

\\\\\\

ولم يعطني اسم اليوم المقابل له

بالنسبة للاخير اضفت 

 lblDateAddDay.Text = DateTimePicker1.Value.AddDays(+txtAddDates.Text).ToString("yyyy/MM/dd")

ومشي الحال

ايظاً الفقرة الاولى تم حلها 



dim dateGregorian as Date = me.DateTimePicker1.Value


كانت 

dim dateGregorian as Date = me.DateTimePicker1.Value.AddDays(-1)


بخصوص الخطاء الذى كان يحدث عند عرض اليوم

كان السبب فى استخدام hijri حيث يظهر التاريخ يزيد 1000 وكسور عام
لاكتشافي ذلك حولت الجزء الخاص السطر (dddd) الى (yyyy/MM/dd)
حتى يظهر التاريخ كاملاً بدلاً من اليوم كتابتاً

لذلك قمت بتغيير نمط استخدام التاريخ بالجزء
كود :
Dim NameDay As String = dateHijri.ToString("ddd", ci)

ومن ثم يحب جعل قيمة افتراضية فى 
PHP كود :
txtAddDates.Text 

حتى لا تظهر اى اخطاء عند استخدام المستخدم بدون ان يزيد اى ارقام
لذلك قم بجعل قيمته 0

وبالنهاية بخصوص
بعد عمل زيادة بالتاريخ لعدد الايام يجب اظهار اليوم
كل ما تحتاجه هو
استخدم نفس الكود
كود :
DateTimePicker1.Value.AddDays(Val(txtAddDates.Text))

لكن مع اضافة بسيطة فقط ليصبح
كود :
DateTimePicker1.Value.AddDays(Val(txtAddDates.Text)).ToString("ddd")
وهذا لقيمة اليوم بعد الاخر


تحياتى لك
وتمنياتى لك التوفيق
نبي مثال التاريخ