السلام عليكم ورحمة الله وبركاته
كيف اجعل طريقة ادخال التاريخ بشكل صحيحه ومحدده
مثلاً :
عند ادخال تاريخ 30/30/1800
يتم عمل رفض للقيمة حيث ان عدد الشهور 12 شهر ولا يمكن قبول الرقم "30"
كذلك تاريخ السنه "1800" قديمة بالتالي لا يتم قبولها ..
اضافة الى تحديد maxdate و mindate لادخال التواريخ ..
علما اني استخدم MaskedTextBox لادخال التاريخ
اتمنى ان تكون وضحت مشكلتي لديكم
تحياتي لكم
اعمل Clamp للمدخلات
حتي تتفادي الأخطاء
أي يجب أن تتأكد أن المدخلات تقع بين رقمين أنت تحددهم
بالنسبة للشهور فهي يجب أن تكون بين 1 و 12
وبالنسبة للأيام فهي يجب أن تقع بين 1 و 31
أما بالنسبة للسنه فهي يجب أن تكون بين mindate year و maxdate year
يمكنك استخدام الدالة التالية
PHP كود :
Friend Function Clamp(value As Integer, max As Integer, min As Integer) As Integer
Return (If(value > max, max, (If(value < min, min, value))))
End Function
كود يوضح استخدام الدالة وهنا قمت بتمرير التاريخ يقيمة اكبر من عد الشهور المعتاد
وهنا الدالة ستعد بالرقم 12
PHP كود :
Dim month As Integer = 13
Dim monthResult As Integer = Clamp(month, 12, 1)
(10-11-17, 03:13 PM)a.ahmed كتب : [ -> ]MaskedTextBox
DateTimePicker
PHP كود :
DateTimePicker1.Format = DateTimePickerFormat.Custom
DateTimePicker1.CustomFormat = "yyyy/MM/dd"
DateTimePicker1.MinDate = New Date(1990, 1, 1)
DateTimePicker1.MaxDate = New Date(2050, 12, 31)
PHP كود :
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
MsgBox(DateTimePicker1.Text)
End Sub
مشكور عالرد اخ احمد ..
اداة جميلة ولكن هل استطيع ان اجعل الاداة فارغه عند التحميل الفورم
وهل استطيع ان اجعل ادخال التاريخ اجباري في هذه الاداة
وشكرا لك عالمجهود ..
(10-11-17, 03:15 PM)silverlight كتب : [ -> ]اعمل Clamp للمدخلات
حتي تتفادي الأخطاء
أي يجب أن تتأكد أن المدخلات تقع بين رقمين أنت تحددهم
بالنسبة للشهور فهي يجب أن تكون بين 1 و 12
وبالنسبة للأيام فهي يجب أن تقع بين 1 و 31
أما بالنسبة للسنه فهي يجب أن تكون بين mindate year و maxdate year
يمكنك استخدام الدالة التالية
PHP كود :
Friend Function Clamp(value As Integer, max As Integer, min As Integer) As Integer
Return (If(value > max, max, (If(value < min, min, value))))
End Function
كود يوضح استخدام الدالة وهنا قمت بتمرير التاريخ يقيمة اكبر من عد الشهور المعتاد
وهنا الدالة ستعد بالرقم 12
PHP كود :
Dim month As Integer = 13
Dim monthResult As Integer = Clamp(month, 12, 1)
مشكور اخي عالرد
حاولت اطبق الطريقة ولم تنجح معي ..
اسمح لي أن أوضح لك شئ
البرمجة نوع من المنطق او Logic بمعني إنه عليك أن تتوقع أخطاء في إدخال البيانات من مستخدم البرنامج
ويجب أن تفكر بطريقة بسيطة
وهي أن لغة التخاطب الوحيدة بين المبرمج و المستخدم هي أدوات إدخال البيانات
يعني أنت هنا تتحدث الي شخص لا تعرف ماذا سيفعل بالبرنامج الخاص بك و كل العلاقة بينكم تنحصر في أدوات إدخال المعلومات
وأدوات إدخال البيانات في حالتك هنا تتم عن طريق تكست بوكس
وهنا يجب عليك كمبرمج أن تتأكد أن المعلومات التي أدخلها المستخدم تمت بالصورة التي تريدها ثم بناء علي ذلك تقوم باستخدامها داخل البرنامج
مثلا يجب أن تجبر المستخدم علي إدخال أرقام في التكست بوكس
عموما الهدف من الكود الذي كتبته لك هو اسلوب لتتحقق من أن عملية ادخال اليوم أو الشهر أو السنة تتم بشكل صحيح
,و لكي يكون الأمر أكثر سهولة لك قمت بإعادة صياعة للدالة كالتالي
PHP كود :
Friend Function IsValidInput(value As Integer, max As Integer, min As Integer) As Integer
Return (value = (If(value > max, max, (If(value < min, min, value)))))
End Function
مشكورين اخواني ما قصرتو استخدمت اداة datetimepicker
واتبعت طريقة الاخ a.ahmed
كذلك وضعت هذا الكود لجعل القيمة الافتراضية فراغ :
كود :
DateTimePicker1.Format = DateTimePickerFormat.Custom
DateTimePicker5.CustomFormat = " "
DateTimePicker1.Value = Date.FromOADate(1 / 1 / 1950)
DateTimePicker1.MinDate = New Date(1950, 1, 1)
DateTimePicker1.MaxDate = New Date(2050, 12, 31)
وعند حدث KeyPress وضعت هذا الكود :
كود :
DateTimePicker1.CustomFormat = "yyyy/MM/dd"
تحياتي لكم جميعاً