کنترل maskedtextbox برای تاریخ ورودی
سلام منم میخوام masked چک کنم که تاریخ ورودیش اشتباه نباشه . یه پست تو تالار پیدا کردم که برای فرمت Shortdate یعنی الگوی (00/00/0000) کد زیر رو استفاده میکنه
کد:
if ( (int.Parse(maskedTextBox1.Text.Substring(3, 2)) > 6 && int.Parse(maskedTextBox1.Text.Substring(0, 2)) > 30) || int.Parse(maskedTextBox1.Text.Substring(0, 2)) > 31 || int.Parse(maskedTextBox1.Text.Substring(0, 2)) < 1 || int.Parse(maskedTextBox1.Text.Substring(3, 2)) > 12 || int.Parse(maskedTextBox1.Text.Substring(3, 2)) < 1 || int.Parse(maskedTextBox1.Text.Substring(6, 4)) > 2000 || int.Parse(maskedTextBox1.Text.Substring(6, 4)) < 1300) MessageBox.Show("خطا در ورود تاریخ ...!");else MessageBox.Show("تاریخ مورد قبول است.");
ام وقتی من الگو رو به 00/00/0000 تغییر میدم این کد کار نمیکنه
دقیقا نمیدونم که Text.Substring(3, 2) کدوم قسمت از این الگو رو چک میکنه؟ لطفا راهنمایی کنید
https://barnamenevis.org/images...ser_online.gif https://barnamenevis.org/images/buttons/report.gif https://barnamenevis.org/images/misc/progress.gif
نقل قول: کنترل maskedtextbox برای تاریخ ورودی
سلام
شما خیلی راحت می تونید با استفاده از متدهای remove و replace و .. موجود برای String ها ابتدا کاراکتر Seprator را جدا کنید و بعد از اون Validation مورد نظرتون رو اعمال کنید ..
نقل قول: کنترل maskedtextbox برای تاریخ ورودی
نقل قول:
ام وقتی من الگو رو به 00/00/0000 تغییر میدم این کد کار نمیکنه
دقیقا نمیدونم که Text.Substring(3, 2) کدوم قسمت از این الگو رو چک میکنه؟ لطفا راهنمایی کنید
این قسمت مقدار ماه رو میگیره که البته درستش
int.Pares(text.Substring(4,2))
هستش
نقل قول: کنترل maskedtextbox برای تاریخ ورودی
ممنونم ولی
من نگرفتم که برای این الگو 00/00/0000 بازه سال و ماه و روز کدومه ؟ این بازه ها چجوری حساب میشن؟
نقل قول: کنترل maskedtextbox برای تاریخ ورودی
از این کد استفاده کنید.
string[] str = maskedTextBox1.Text.Split('/');
int i = Int32.Parse(str[0] + str[1] + str[2]);
نقل قول: کنترل maskedtextbox برای تاریخ ورودی
نقل قول:
من نگرفتم که برای این الگو 00/00/0000 بازه سال و ماه و روز کدومه ؟ این بازه ها چجوری حساب میشن؟
از کدی که بالا نوشتید کاملا مشخصه
روز اگر 6 ماه اول بودیم 31 و اگر 6 ماه دوم بودیم 30
ماه 12
سال 365
برای کنترل تاریخ ورودی میتونید به روش زیر عمل کنید
string str = "1388/32/01";
PersianCalendar p = new PersianCalendar();
int m, y, d;
m = int.Parse(str.Substring(5, 2));
y = int.Parse(str.Substring(0, 4));
d = int.Parse(str.Substring(8, 2));
try
{
p.ToDateTime(y, m, d, 0, 0, 0, 0);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
نقل قول: کنترل maskedtextbox برای تاریخ ورودی
دوست عزيز اينو كجاي برنامه بنويسم