تقييم الموضوع :
  • 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
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال فى بحث بالتاريخ احمد خطاب 2 30 منذ 2 ساعة مضت
آخر رد: احمد خطاب
  [VB.NET] سؤال اسيل1 1 39 اليوم, 12:58 AM
آخر رد: ابراهيم ايبو
  سؤال بخصوص البحث باستخدام التاريخ عن طريق WebService masry4u 3 76 08-12-18, 08:36 PM
آخر رد: masry4u
Heart سؤال عن حساب السن (العمر) عن طريق تاريخ الميلاد ahmadpal 10 183 07-12-18, 04:52 PM
آخر رد: ahmadpal
  تغيير لغة الجداول فى الداتا جريد احمد خطاب 3 82 06-12-18, 09:27 PM
آخر رد: Emam emam
  سؤال بخصوص الكتابة داخل داتا جريد احمد خطاب 3 76 05-12-18, 11:35 AM
آخر رد: احمد خطاب
  [VB.NET] سؤال عن الداتا جريد فيو M.SOFT 1 61 04-12-18, 04:31 AM
آخر رد: محمد كريّم
Heart [VB.NET] تغيير لون وخصائص date time picker ahmadpal 4 107 01-12-18, 10:19 PM
آخر رد: Rabeea Qbaha
Star سؤال بخصوص جدول فاتوره المشتريات ، vb2010 0 60 30-11-18, 08:57 PM
آخر رد: vb2010
  [سؤال] سؤال عن موضوع الكريستال ريبورت m_eljabo 1 57 29-11-18, 10:57 PM
آخر رد: baha

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


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