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

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

لدي برنامج اعتمد فيه على التاريخ الهجري . 

عند اختيار التاريخ من DateTimePicker يقوم بتحويل التاريخ إلى مربع النص textbox1 بالتاريخ الميلادي والى مربع النص textbox2 بالتاريخ الهجري 

بعد ذلك اقوم بتحويل القيمة النصية في textbox1 إلى تاريخ في حدث textbox1_tetxchange 

المشكلة :
عند قيامي بالحفظ :
1. عند اختيار تاريخ اقل من او يساوي اليوم 12 من الشهر يقبل الحفظ
2. عند اختيار تاريخ اكبر من اليوم 12 من الشهر لايقبل الحفظ

ارجو مساعدتي ولكم جزيل الشكر .

ملاحظة : 

1. التاريخ الهجري احفظه على شكل نص في قاعدة البيانات 

2. التاريخ الميلادي يتم تحويله من هجري لميلادي ويحفظ من شكل نصي الى تاريخ .


مثال على المطلوب مع نسخة من قاعدة البيانات 
السلام عليكم اخي الكريم
المشكلة ببساطة هي انك تضع اليوم مكان الشهر والشهر مكان اليوم ومعروف ان عدد الاشهر 12 لذلك لايقبل اكثر من 12
الحل اما ان تغير نظام التاريخ في الجهاز من نظام MM/dd/yyyy  الى نظام dd/MM/yyyy
 لانك في الحفظ تستخدم النظام الثاني dd/MM/yyyy
والحل الثاني هو عندما تقوم بتحوبل النص الى تاريخ اكتب هكذا

كود :
CDate(TextBox1.Text).ToString("dd/MM/yyyy")
(01-08-19, 08:16 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم اخي الكريم
المشكلة ببساطة هي انك تضع اليوم مكان الشهر والشهر مكان اليوم ومعروف ان عدد الاشهر 12 لذلك لايقبل اكثر من 12
الحل اما ان تغير نظام التاريخ في الجهاز من نظام MM/dd/yyyy  الى نظام dd/MM/yyyy
 لانك في الحفظ تستخدم النظام الثاني dd/MM/yyyy
والحل الثاني هو عندما تقوم بتحوبل النص الى تاريخ اكتب هكذا

كود :
CDate(TextBox1.Text).ToString("dd/MM/yyyy")


الله يجزاك خير اخي ابراهيم 

زبطت معاي لما غيرت الاعدادات للتاريخ الجهاز

ماذا لو اردت تغييرها عن طريق الكود . جربت ولم تزبط معي 

هذا كود تحويل النص لتاريخ . تحياتي
كود :
       Dim DateStr = TextBox1.Text
       Dim Dt1 As DateTime
       DateTime.TryParseExact(DateStr, ("dd-MM-yyyy"), CultureInfo.InvariantCulture, DateTimeStyles.None, Dt1)




تحياتي
السلام عليكم
اخي بالنسبة للكود اذا كان التاريخ يخالف نظام الجهاز اكتب الصيغة المخالفة  كما هي في مربع النص
 وستتحول الى صيغة الجهاز يعني يجب ان تتطابق الصيغة التي ستكتبها في مربع النص مع الصيغة الموجودة في الكود
  ليقوم بتحويلها
كود :
 Dim d As Date = Date.ParseExact(TextBox1.Text, "MM/dd/yyyy", Globalization.CultureInfo.InvariantCulture)
       MsgBox(d.ToString)

تسلم ياغالي