دسته بندی ها
17:32 1398/11/21

نحوه کنترل فرمت صحیح تاریخ شمسی در سی شارپ

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : سی شارپ

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 4489
پاسخ دهنده : Sowgandi 18:17 1398/11/21

سلام. برای این کار ابتدا کد زیر را در بدنه نرم افزار قرار دهید تا در همه فرم ها به اون دسترسی داشته باشید.

 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;
            }

کد رو استفاده بفرمایید و چنانچه هنوز مشکلی داشتید در خدمتم.

موفق باشید.

ویرایش شده در دوشنبه 21 بهمن 1398 ساعت 18:22:45
به این پاسخ امتیاز بدهید    4
امتیاز: 871 رتبه: 3
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود