年,月和日参数描述波斯日历中无法表示的DateTime

Nik*_*efi 3 c# asp.net datetime

我使用以下代码来呈现今天的波斯日期......我工作的网站自两个月前开始上网并且工作正常但今天我收到了以下错误:

年,月和日参数描述不可表示的DateTime.

我不知道为什么会这样......有什么方法可以解决这个问题吗?

protected void lbnChangeDate_Click(object sender, EventArgs e)
{

    PersianCalendar p = new PersianCalendar();
    DateTime date = DateTime.Now;
    int year = p.GetYear(date);
    int month = p.GetMonth(date);
    int day = p.GetDayOfMonth(date);
    DateTime d1 = new DateTime(year, month, day);
    MultiView6.SetActiveView(View12);
    txtDate.Text = DateTime.Parse(d1.ToString()).ToString("yyyy/MM/dd");

}
Run Code Online (Sandbox Code Playgroud)

Dam*_*ver 7

DateTime我不记得他们是如何被创造出来的.所以,例如d1,不记得,在过去的某个时刻,你使用一个PersianCalendar实例获得3 int秒然后在其构造函数中使用它们.该构造函数(隐含地)假设您从格里高利历中经过了数年,数月和数天.

然后,进一步,DateTime.Parse不知道很久以前你PersianCalendar用它来访问并做了不适当的事情.

如果要将波斯日历日期显示为字符串,只需将其用作:

protected void lbnChangeDate_Click(object sender, EventArgs e)
{

    PersianCalendar p = new PersianCalendar();
    DateTime date = DateTime.Now;

    txtDate.Text = string.Format("{0:0000}/{1:00}/{2:00}",
                    p.GetYear(date),
                    p.GetMonth(date),
                    p.GetDayOfMonth(date));

}
Run Code Online (Sandbox Code Playgroud)