نحوه کنترل فرمت صحیح تاریخ شمسی در سی شارپ
سلام
توی پروژه ام تاریخ رو به صورت 1398/11/21 دارم. حالا می خوام کنترل کنم که فرمت تاریخ دقیقا همینه و چیزی جز این نیست. یعنی اگر جز این بود می خوام خطا نمایش بدم.
مثلا موارد زیر جزو غلط ها هستن
1398/11
1398/1/1
1398/000
1398//
و ...
می خوام موقع ثبت اطلاعات توی دیتابیس مطمین باشم دقیقا همین فرمت رعایت شده. کد زیر رو نوشتم ولی جواب نمیده
string DateShamsi = "1398";
if (DateShamsi != string.Format("yyyy/MM/dd"))
{
}
الان فرمت تاریخ در مثال بالا اشتباه هست و میخوام کنترل بشه این موضوع. ممنون میشم بفرمایید چجوری باید فرمت یک رشته رو کنترل کنم.
سلام. برای این کار ابتدا کد زیر را در بدنه نرم افزار قرار دهید تا در همه فرم ها به اون دسترسی داشته باشید.
public static bool CheckDateFormat(string Date)
{
try
{
if (Date.Length != 10) { return false; } /// چک می کند که تعداد رشته تاریخ حتما 10 رقمی باشد
System.String[] userDateParts = Date.Split(new[] { "/" }, System.StringSplitOptions.None);
int Year = int.Parse(userDateParts[0]);
int Month = int.Parse(userDateParts[1]);
int Day = int.Parse(userDateParts[2]);
if (Year < 1300) { return false; } /// در این قسمت میتوانید مقدار وارد شده سال را کنترل کنید
if (Month > 12 || Month < 1) { return false; } /// در این قسمت میتوانید مقدار وارد شده ماه را کنترل کنید
if (Day > 31 || Day < 1) { return false; } /// در این قسمت میتوانید مقدار وارد شده روز را کنترل کنید
return true;
}
catch (Exception)
{
return false;
}
}
دقت داشته باشید که کد فوق مواردی رو که گفتید چک میکنه به علاوه اینکه چک میکنه که ماه وارد شده بین 1 تا 12 و روز وارد شده بین 1 تا 31 باشه. یا مثلا چک میکنه که سال وارده کوچکتر از 1300 نباشه! که این کنترل ها رو میتونید حذف هم بکنید یا تغییر بدید. همین طور شما میتونید طبق الگو هر نوع کنترل دیگه ای که دوست دارید روی اون بذارید.
با فرض اینکه کلاسی که در بدنه فرم ایجاد کردید نام PublicVariable داشته باشد می توانید با کد زیر فرمت تاریخ خودتون رو چک کنید.
string DateShamsi = "1398";
if (PublicVariable.CheckDateFormat(DateShamsi) == false)
{
MessageBox.Show("فرمت تاریخ صحیح نیست");
return;
}
کد رو استفاده بفرمایید و چنانچه هنوز مشکلی داشتید در خدمتم.
موفق باشید.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول