تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كبفية تعديل التاربخ الهجري عند الضرورة
#1
السلام عليكم
مواصلة لانهاء برنامجي احتاج الي مساعدتكم
كيف يمكنني تعديل التاريخ الهجري عند الضرورة اي حبنما لا يتوافق
الحساب مع الرؤية. بحيث استطيع زيادة يوم او يومين او حذفها. المشكلة كيف يمكنني
حفظ هذا التعديل في ذاكرة البرنامج بحيث حينما افتحه مرة اخرى اجد انه اخذ الزيادة او النقصان
بعين الاعتبار.
مع الشكر الجزيل لمن يستطيع مساعدتي.
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم
أرجو المساعدة يا إخواني.
الرد }}}
تم الشكر بواسطة:
#3
السلام عليكم

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

كود :
'لإضافة يومان للتاريخ الهجري

Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International", True).SetValue("AddHijriDate", "AddHijriDate+2")

'لإضافة يوم واحد للتاريخ الهجري

Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International", True).SetValue("AddHijriDate", "AddHijriDate+1")

'لعدم إضافة أو إنقاص أي أيام

Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International", True).SetValue("AddHijriDate", "")

'لإنقاص التاريخ الهجري بمقدار يوم واحد

Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International", True).SetValue("AddHijriDate", "AddHijriDate")

'لإنقاص التاريخ الهجري بمقدار يومان
Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International", True).SetValue("AddHijriDate", "AddHijriDate-2")

'في نهاية الكود لا تنسى غلق مفتاح الريجستري الذي قمنا بتعديله
Microsoft.Win32.Registry.CurrentUser.Close()
الرد }}}
تم الشكر بواسطة:
#4
لسلام عليكم

حاولت استعمال الكود لكن لم ينجح معي ربما لأنني لم أفهم كيف يعمل . هذا هو الكود هل يمكن تعديله لو سمحتم .
كود :
Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged
       'لإضافة يومان للتاريخ الهجري
       If NumericUpDown1.Value = 2 Then
           Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International", True).SetValue("AddHijriDate", "AddHijriDate+2")
       End If
       'لإضافة يوم واحد للتاريخ الهجري
       If NumericUpDown1.Value = 1 Then
           Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International", True).SetValue("AddHijriDate", "AddHijriDate+1")
       End If
       'لعدم إضافة أو إنقاص أي أيام
       If NumericUpDown1.Value = 0 Then
           Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International", True).SetValue("AddHijriDate", "")
       End If
       'لإنقاص التاريخ الهجري بمقدار يوم واحد
       If NumericUpDown1.Value = -1 Then
           Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International", True).SetValue("AddHijriDate", "AddHijriDate-1")
       End If
       If NumericUpDown1.Value = -2 Then
           'لإنقاص التاريخ الهجري بمقدار يومان
           Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International", True).SetValue("AddHijriDate", "AddHijriDate-2")
       End If
       'في نهاية الكود لا تنسى غلق مفتاح الريجستري الذي قمنا بتعديله
       Microsoft.Win32.Registry.CurrentUser.Close()
   End Sub
الرد }}}
تم الشكر بواسطة:
#5
السلام عليكم 
كيف يعمل هذا الكود  لو سمحتم اخواني. فانا احتاجه.....
الرد }}}
تم الشكر بواسطة:
#6
وعليكم السلام


Imports System.Threading  'للتاريخ الهجري  

Imports System.Globalization   'للتاريخ الهجري  

كود :
       'هذا الكود لجعل البرنامج يعمل بالتقويم الميلادي حتى لو الجهاز بالتقويم الهجري  تستطيع وضعه في لوود الفورم
       Threading.Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo("ar-eg")
       Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo("ar-eg")


       TextBox1.Text = Format(Date.Now, "dd/MM/yyyy")
كود :
       'هذا الكود لجعل البرنامج يعمل بالتقويم الهجري حتى لو الجهاز بالتقويم الميلادي  تستطيع وضعه في لوود الفورم

       Dim Ar As CultureInfo = New CultureInfo("AR-SA")

       Thread.CurrentThread.CurrentCulture = Ar

       Ar.DateTimeFormat.Calendar = New HijriCalendar
       Ar.NumberFormat.DigitSubstitution = DigitShapes.NativeNational

       TextBox1.Text = Format(Date.Now, "dd/MM/yyyy")

ان شاء الله يكون هذا ما تريد 
الرد }}}
تم الشكر بواسطة:
#7

السلام عليكم ورحمة الله

ملاحظات هامة:
يعمل فقط إذا كان نوع تقويم النظام "التاريخ الهجري" ولا يعمل مع نوع تقويم النظام "تقويم أم القرى".
المجال المسموح به فقط يومان زيادة أو نقصان: (-2), (-1), (0), (1+), (2+).
PHP كود :
Public Class Form1

    
Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click
        
' يعمل فقط إذا كان نوع تقويم  النظام التاريخ الهجري ولا يعمل مع نوع تقويم النظام تقويم أم القرى '
        ' (+2), (+1), (0), (-1), (-2) :المجال فقط يومان زيادة أو نقصان '

        
If AddHijriDate(-1Then
            Dim hijri 
As New Globalization.HijriCalendar
            MsgBox
(Now.Date)
        
End If

    
End Sub


    
Private Function AddHijriDate(days As Integer) As Boolean
        
Try
            
' ملاحظات هامة '
            ' يعمل فقط إذا كان نوع تقويم  النظام التاريخ الهجري ولا يعمل مع نوع تقويم النظام تقويم أم القرى '
            ' (+2), (+1), (0), (-1), (-2) :المجال المسموح به فقط يومان زيادة أو نقصان '
            
If Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International"_
                    
.GetValue("iCalendarType") = 6 _
            Then
                
If Math.Abs(days) > 2 Then
                    MsgBox
("عفواً.. مجال الأيام المسموح به من (-2 إلى +2)"_
                       MsgBoxStyle
.Exclamation MsgBoxStyle.MsgBoxRight MsgBoxStyle.MsgBoxRtlReading)
                    Return 
False
                End 
If

                
Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Control Panel\International"True_
                   
.SetValue("AddHijriDate""AddHijriDate" & If(days 0days"+" days))
                Return 
True
            
Else
                
MsgBox("عفواً.. نوع تقويم النظام يجب أن يكون التاريخ الهجري"_
                       MsgBoxStyle
.Exclamation MsgBoxStyle.MsgBoxRight MsgBoxStyle.MsgBoxRtlReading)
                Return 
False
            End 
If
        Catch 
ex As Exception
            MsgBox
(ex.Message)
            Return 
False
        End 
Try
    
End Function

End Class 

الرد }}}
تم الشكر بواسطة:
#8
السلام عليكم
الشكر الجزيل لأخي الوليد و أخي المستكاوي
جازاكما الله ألف خير
الرد }}}
تم الشكر بواسطة:
#9
السلام عليكم
أعتقد أنه تواجهني مشكلة عند استعمال الكودين ألا وهي :
- أن قاعدة البيانات عندي تعمل أساسا بالتفويم الميلادي لأن التفويم الهجري يتغير السنوات و الفصول
- وأن اوقات الصلوات هي بالأساس مبنية على أساس الحساب الشمسي من شروق و غروب الخ
- الكود يستوجب ان يعمل النظام بالتقويم الهجري وهذا أمر أخل بمعظم أجزاء البرنامج.
إذا فكيف يا إخواني أستطيع استعمال الكود الذي هو في الواقع يعمل بحيث يكون التاريخ الميلادي باللغة الفرنسية هو نظام الجهاز ويمكنني تعديل التاريخ الهجري عند الضرورة اي حبنما لا يتوافق الحساب مع الرؤية.
مع الشكر مسبقا
الرد }}}
تم الشكر بواسطة:
#10
أرجو المساعدة يا إخواني.
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم