السلام عليكم ورحمة الله وبركاته
ليش التاريخ يصير هجري بعض الفورم والبعض ميلادي بنفس المشروع
ممكن طريقة اخلي الجميع هجري علماً تاريخ الجهاز هجري
شكرا لكم
لضمان أن جميع التواريخ في مشروع
فيجوال بيسك تستخدم التقويم الهجري بغض النظر عن إعدادات النظام، يمكنك استخدام الكائن
لتعيين التقويم الهجري ضمن المشروع.
الطريقة:
يمكنك تغيير إعدادات الثقافة الافتراضية لتطبيقك إلى الثقافة الهجرية باستخدام الكود التالي:
vb
نسخ الكود
كود :
Imports System.Globalization
Public Sub SetHijriCalendar()
' إنشاء ثقافة جديدة بناءً على اللغة العربية
Dim hijriCulture As New CultureInfo("ar-SA", True)
' ضبط التقويم الافتراضي ليكون هجري
hijriCulture.DateTimeFormat.Calendar = New HijriCalendar()
' تعيين هذه الثقافة كتقافة افتراضية للتطبيق
CultureInfo.DefaultThreadCurrentCulture = hijriCulture
CultureInfo.DefaultThreadCurrentUICulture = hijriCulture
End Sub
تطبيق الطريقة:
- قم باستدعاء دالة
SetHijriCalendar
- عند بدء تشغيل التطبيق، مثلًا في Form_Load لأول فورم يتم فتحه:
vb
نسخ الكود
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load SetHijriCalendar()End Sub
- كل الفورمات في المشروع ستستخدم التقويم الهجري الآن.
ملاحظات إضافية:
- عرض التاريخ الهجري: إذا كنت تريد عرض التاريخ الهجري في الفورمات أو التقارير، استخدم الطريقة التالية:
vb
نسخ الكود
Dim todayHijri As String = DateTime.Now.ToString("dd/MM/yyyy", New CultureInfo("ar-SA"))MessageBox.Show(todayHijri)
- حفظ البيانات الهجرية في قاعدة بيانات: إذا كنت تستخدم قاعدة بيانات، تأكد من تخزين القيم كنص (
String
- ) بصيغة التاريخ الهجري لتجنب تغييرها عند قراءة البيانات.
- عودة النظام إلى التقويم الميلادي: إذا كنت تحتاج العودة إلى التقويم الميلادي في أجزاء من المشروع، يمكنك ضبط الثقافة الافتراضية مرة أخرى باستخدام الكود التالي:
vb
نسخ الكود
Dim gregorianCulture As New CultureInfo("en-US", True)CultureInfo.DefaultThreadCurrentCulture = gregorianCultureCultureInfo.DefaultThreadCurrentUICulture = gregorianCulture
بهذه الطريقة، يمكنك التحكم بشكل كامل بالتقويم المستخدم في المشروع