مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

خطا در تبدیل تاریخ شمسی به میلادی

  • چهارشنبه 31 اردیبهشت 1399
  • 11:30
تشکر میکنم

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

PersianCalendar pcal = new PersianCalendar();
            string[] date = DateOfBirth.Text.ToString().Split('/');
            string year = date[0].ToString();
            string month = date[1].ToString();
            string day = date[2].ToString();
            if (month.Length == 1)
            {
                month = "0" + month;
            }
            if (day.Length == 1)
            {
                day = "0" + day;
            }
           
            //تبدیل تاریخ شمسی به میلادی ========================================
            DateTime PDate = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(day));
            DateTime MDate = pcal.ToDateTime(PDate.Year, PDate.Month, PDate.Day, 0, 0, 0, 0);
            //=====================================================================

وقتی روز 29 یا 30 یا 31 انتخاب شود ارور زیر می دهد:

'Year, Month, and Day parameters describe an un-representable DateTime.'

لطفا راهنمایی نمایید

با تشکر

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

حسین موسالو

عضویت از 1397/09/15

  • چهارشنبه 31 اردیبهشت 1399
  • 20:48

سلام، از نمونه کلاس زیر استفاده کنید.

public static class DateConverter
{    
    public static DateTime ToMiladiDate(DateTime dateTime)
    {
        return new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, new System.Globalization.PersianCalendar());
    }
}

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 10 خرداد 1399
  • 07:27

ممنون دوست عزیز

پیغام زیر می دهد:

System.ArgumentOutOfRangeException: 'Year, Month, and Day parameters describe an un-representable DateTime.'

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)