tryCatch

رامین قره داغی
2 آذر ۱۴۰۰
سلام استاد خسته نباشید تو قسمت فیلتر بر اساس تاریخ من قبلا یدونه datePicker گذاشته بودم ولی اعداش فارسی بود به فرمتش خطا میداد و فیلتر نمیکرد حالا وقتی چیزی تو dataBase ذخیره میشه با regex اعتبار سنجی کردم که تاریخ بصورت 0000/00/00 وارد شود ولی هنگام فیلتر کردن دیگه اعتبار سنجی نمیکنم اگه بصورت 0000/00/00 وارد نکرد میره catch رو اجرا میکنه که اون رو خالی گزاشتم سوال 1) برای اینکه فرمت اعداد دیت پیکر انگلیسی باشن کار راحتی وجود داره؟ بغیر از اینکه دونه به دونه اعداد رو تغییر بدیم سوال 2) خالی بودن catch ایراد داره؟
284

1 پاسخ
  • محمد اشرافی2 آذر ۱۴۰۰

    سلام ، اول برا اینکه کدتون تمیز تر شه عملیات تبدیل تاریخ رو به کلاس DateUtil منتقل کنید

     public static DateTime ToMiladi(this string persianDate)
            {
                try
                {
                    string[] std = persianDate.Split("/");
    
    
                    return new DateTime(
                        int.Parse(std[0]),
                        int.Parse(std[1]),
                        int.Parse(std[2]),
                        new PersianCalendar()
                    );
                }
                catch
                {
                   return DateTime.Now;
                }
            } 

    در مورد ذخیره تاریخ هم باید بگم بهترین روش اینه که تاریخ میلادی با فرمت پیشفرض اش ذخیره کنید

    -------------------------------

    1 :) روش خاصی براش وجود نداره ، اگر هم liberary ای هم براش باش با همین روش تبدیلش میکنن

    2:) نه مشکلی نداره فقط try catch هارو خیلی توی کدهاتون استفاده نکنید ، سعی کنید یه جای خاص برای خطا یابی داشته باشید ( توی دوره پیشرفته حتما درموردش صحبت مینم )