تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال في تغيير فورمة التاريخ
#1

ولله الحمد إنتهيت من عمل برنامج خاص بشؤن العاملين في الشركة التى اعمل بها ولكن عند مشكلة مع التاريخ وهي عند تثبيت البرنامج على الجهاز يجب تغيير فورمة التاريخ من اي شكل الى الشكل التالي
yyyy/MM/dd
وذلك من control panel فهل من طريقة أجعل بها البرنامج بقوم بفحص فورمة التاريخ وضبطها من تلقاء نفسه عندما يجد انها مختلفة عن الفورمة المطلوبة
جزاك الله خيرا
الرد
تم الشكر بواسطة:
#2
عن طريق محرر الرجستري تستطيع تغير التنسيق الى yyyy/MM/dd

استخدم اكواد vb.net لتغير القيمة بداخل محرر الرجستري بالتنسيق المناسب لك

مسار القيمة في محرر الرجستري كما تظهر في الصورة

[ATTACH=CONFIG]993[/ATTACH]


بالتوفيق


الملفات المرفقة صورة/صور
   
الرد
تم الشكر بواسطة:
#3
كمال المجيدي كتب :عن طريق محرر الرجستري تستطيع تغير التنسيق الى yyyy/MM/dd

استخدم اكواد vb.net لتغير القيمة بداخل محرر الرجستري بالتنسيق المناسب لك

مسار القيمة في محرر الرجستري كما تظهر في الصورة

[ATTACH=CONFIG]993[/ATTACH]


بالتوفيق


شكرا يا اخ كمال على المشاركة
ولكن الطريقة هذة تعتدم على ان المشتخدم هو الذى يقوم بها وليس البرنامج
انا اريد البرنامج ان بقوم بها من تلقاء نفسه
الرد
تم الشكر بواسطة:
#4
اقصد ان تقوم بكتابة كود يقوم بتنفيذ كل هذا من داخل البرنامج :

تابع معي :

قم بتعريف مكتبة
PHP كود :
Imports Microsoft.Win32 

ارسل التنسيق المناسب لك الى الرجستري عن طريق الكود التالي :
PHP كود :
Dim regKey As RegistryKey
        regKey 
Registry.CurrentUser.CreateSubKey("Control Panel\International")
        
regKey.SetValue("sShortDate""yyyy/MM/dd")
        
regKey.Close()

        
regKey Registry.CurrentUser.CreateSubKey("Control Panel\International")
        
regKey.SetValue("sLongDate""yyyy/MM/dd")
        
regKey.Close() 


بعد ذالك تحتاج الى عملية إنعاش الويندوز لإظهار التغيرات على الجهاز عن طريق الكود التالي :
PHP كود :
For Each ObjProcess As Process In Process.GetProcessesByName("explorer")
            
ObjProcess.Kill()
        
Next
        Process
.Start("explorer"



بهذا يصبح الكود كاملاً بهذا الشكل :
PHP كود :
Imports Microsoft.Win32

Public Class Form1

    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
     
        Dim regKey 
As RegistryKey
        regKey 
Registry.CurrentUser.CreateSubKey("Control Panel\International")
        
regKey.SetValue("sShortDate""yyyy/MM/dd")
        
regKey.Close()

        
regKey Registry.CurrentUser.CreateSubKey("Control Panel\International")
        
regKey.SetValue("sLongDate""yyyy/MM/dd")
        
regKey.Close()
  

     For 
Each ObjProcess As Process In Process.GetProcessesByName("explorer")
            
ObjProcess.Kill()
        
Next
        Process
.Start("explorer")
    
End Sub
End 
Class 


قد تحصل على طرق اخرى ولكن هذه احدى الطرق

اتمنى لك التوفيق
الرد
تم الشكر بواسطة:
#5
كمال المجيدي كتب :اقصد ان تقوم بكتابة كود يقوم بتنفيذ كل هذا من داخل البرنامج :

تابع معي :

قم بتعريف مكتبة
PHP كود :
Imports Microsoft.Win32 

ارسل التنسيق المناسب لك الى الرجستري عن طريق الكود التالي :
PHP كود :
Dim regKey As RegistryKey
        regKey 
Registry.CurrentUser.CreateSubKey("Control Panel\International")
        
regKey.SetValue("sShortDate""yyyy/MM/dd")
        
regKey.Close()

        
regKey Registry.CurrentUser.CreateSubKey("Control Panel\International")
        
regKey.SetValue("sLongDate""yyyy/MM/dd")
        
regKey.Close() 


بعد ذالك تحتاج الى عملية إنعاش الويندوز لإظهار التغيرات على الجهاز عن طريق الكود التالي :
PHP كود :
For Each ObjProcess As Process In Process.GetProcessesByName("explorer")
            
ObjProcess.Kill()
        
Next
        Process
.Start("explorer"



بهذا يصبح الكود كاملاً بهذا الشكل :
PHP كود :
Imports Microsoft.Win32

Public Class Form1

    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
     
        Dim regKey 
As RegistryKey
        regKey 
Registry.CurrentUser.CreateSubKey("Control Panel\International")
        
regKey.SetValue("sShortDate""yyyy/MM/dd")
        
regKey.Close()

        
regKey Registry.CurrentUser.CreateSubKey("Control Panel\International")
        
regKey.SetValue("sLongDate""yyyy/MM/dd")
        
regKey.Close()
  

     For 
Each ObjProcess As Process In Process.GetProcessesByName("explorer")
            
ObjProcess.Kill()
        
Next
        Process
.Start("explorer")
    
End Sub
End 
Class 


قد تحصل على طرق اخرى ولكن هذه احدى الطرق

اتمنى لك التوفيق

شكرا يا اخ كمال على الإهتمام
ولكن هذا الحل لم يجدي نفعاً حتى اني جرت حل اخر وهو
Format(Now, "yyyy/MM/dd")
ولكن هو الأخر لم يجدي نفعاً
المشكلة تمكن انه عندي تخزين تاريخ ميلاد شخص ما (مثلا تاريخ ميلاد 10/9/1982) بفومة التاريخ المطلوبة تظهر المشكلة عند الأستعلام حيث عند الأستعلام عن مواليد يوم 10/9/1982 تظهر مواليد يوم 9/10/1982 وهذا خطأ فادح
أرجوا الأفادة الموضوع مهم للغاية
جزاكم الله خيرا
الرد
تم الشكر بواسطة:
#6
اخي MatrixShahin
بالنسبة لتغير التنسيق في النظام الحل كما ذكرت في المشاركة السابقة


إقتباس :لمشكلة تمكن انه عندي تخزين تاريخ ميلاد شخص ما (مثلا تاريخ ميلاد 10/9/1982) بفومة التاريخ المطلوبة تظهر المشكلة عند الأستعلام حيث عند الأستعلام عن مواليد يوم 10/9/1982 تظهر مواليد يوم 9/10/1982 وهذا خطأ فادح

اخي تاكد من تنسيق التاريخ في اداة التاريخ لبرنامجك
اذا كنت تستخدم الاداة DateTimePicker1 يجب عليك تعديل الخصائص لها حتى يظهر التاريخ بالتنسيق yyyy/MM/dd (مثلا تاريخ ميلاد 10/9/1982) وليس العكس

اذهب الى خصائص الاداة وغير فيها التالي :
1- غير خاصية Format الى القيمة Custom
2- ادخل التنسيق التالي yyyy/MM/dd الى الخاصية CustomFormat

كما في الصورة

[ATTACH=CONFIG]1019[/ATTACH]


الملفات المرفقة صورة/صور
   
الرد
تم الشكر بواسطة:
#7
اخي الكريم
إليك هذا الكود وهو سوف يغير لك الصيغة المستعملة للتاريخ حسب ما تريد
في مثالنا هذا سوف يكون التاريخ المستخدم في البرنامج حقك (يوم/شهر/سنة) بغض النظر عن نوع التاريخ المستخدم في ويندوز
يجب وضع الكود Application events class
في الحدث MyApplication_Startup
بالتوفيق إن شاء الله

كود :
Dim newCultureDefinition As CultureInfo
newCultureDefinition.DateTimeFormat.ShortDatePattern = "dd-MM-yyyy"
            Thread.CurrentThread.CurrentCulture = newCultureDefinition
الرد
تم الشكر بواسطة:
#8
t.alkathiri كتب :اخي الكريم
إليك هذا الكود وهو سوف يغير لك الصيغة المستعملة للتاريخ حسب ما تريد
في مثالنا هذا سوف يكون التاريخ المستخدم في البرنامج حقك (يوم/شهر/سنة) بغض النظر عن نوع التاريخ المستخدم في ويندوز
يجب وضع الكود Application events class
في الحدث MyApplication_Startup
بالتوفيق إن شاء الله

كود :
Dim newCultureDefinition As CultureInfo
newCultureDefinition.DateTimeFormat.ShortDatePattern = "dd-MM-yyyy"
            Thread.CurrentThread.CurrentCulture = newCultureDefinition

شكرا يا اخ t.alkathiri على الإهتمام
هل ممكن مزيد من التوضيح حول هذا الكود واين اضعه
الرد
تم الشكر بواسطة:
#9
MatrixShahin كتب :شكرا يا اخ t.alkathiri على الإهتمام
هل ممكن مزيد من التوضيح حول هذا الكود واين اضعه

انا في انتظار الرد يا اخ t.alkathiri
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال فى الحفظ من الداتا جريد salah mansour 5 74 منذ 8 ساعة مضت
آخر رد: mero5000
  [سؤال] سؤال في vb.net و mysql في شبكة محلية بدون انترنت اللورد محمود 3 47 منذ 10 ساعة مضت
آخر رد: حريف برمجة
  سؤال مهم بالنسبة لي أرجوا الاجابة عليه nrkarat 1 35 أمس, 03:49 PM
آخر رد: DOX.1
  سؤال عن الاستعلام والبحث احمد خطاب 5 91 أمس, 02:20 AM
آخر رد: mero5000
  سؤال :- عن التيكست بوكس احمد خطاب 1 42 أمس, 12:43 AM
آخر رد: عبد العزيز البسكري
  حفظ بحقل التاريخ اذا كان فارغ محمد خيري 13 174 15-10-18, 03:27 AM
آخر رد: asemshahen5
  سؤال :- فى كيغية ادراج بيانات فى الداتا جريد فيو احمد خطاب 0 36 13-10-18, 08:54 PM
آخر رد: احمد خطاب
  سؤال عن التكست بوكس احمد خطاب 3 67 12-10-18, 08:34 PM
آخر رد: mustafa husaieen
  سؤال عن التكست بوكس احمد خطاب 1 51 12-10-18, 08:17 PM
آخر رد: asemshahen5
  [سؤال] سؤال عام حول الكود في الفيجوال ستوديو Simo1991 2 78 11-10-18, 03:30 PM
آخر رد: Simo1991

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


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