gpt4 book ai didi

c# - 如何将波斯日历日期字符串转换为 DateTime?

转载 作者:可可西里 更新时间:2023-11-01 03:12:24 29 4
gpt4 key购买 nike

我使用这些代码来转换当前日期时间并将其减去用户在文本框中键入的日期时间。但是它在转换时会出错。

PersianCalendar p = new System.Globalization.PersianCalendar();
DateTime date = new DateTime();
date = DateTime.Parse(DateTime.Now.ToShortDateString());
int year = p.GetYear(date);
int month = p.GetMonth(date);
int day = p.GetDayOfMonth(date);
string str = string.Format("{0}/{1}/{2}", year, month, day);
DateTime d1 = DateTime.Parse(str);
DateTime d2 = DateTime.Parse(textBox9.Text);
string s = (d2 - d1).ToString().Replace(".00:00:00", "");
textBox10.Text = (d2 - d1).ToString().Replace(".00:00:00","");

将日期时间从字符串转换为日期时间时,此行会报错:DateTime d1 = DateTime.Parse(str);

请帮我解决这个问题。

提前致谢

最佳答案

这里不需要解析日期

编辑:

本来我只是想用这个答案指出OP处理中的错误。但我认为完整的答案会更好(尽管延迟:))是的,我知道中间日期表示看起来不像波斯日期。但这不是所需要的。此代码给出了当前日期和用户输入的日期之间的适当差异。

string userInput = "1394/02/31";
System.DateTime date = System.DateTime.Today;
System.Globalization.PersianCalendar p = new System.Globalization.PersianCalendar();

int year = p.GetYear(date);
int month = p.GetMonth(date);
int day = p.GetDayOfMonth(date);
System.DateTime currentDate = new System.DateTime(year, month, 1);
currentDate = currentDate.AddDays(day - 1);

// validation omitted
System.String[] userDateParts = userInput.Split(new[] { "/" }, System.StringSplitOptions.None);
int userYear = int.Parse(userDateParts[0]);
int userMonth = int.Parse(userDateParts[1]);
int userDay = int.Parse(userDateParts[2]);
System.DateTime userDate = new System.DateTime(userYear, userMonth, 1);
userDate = userDate.AddDays(userDay - 1);

System.TimeSpan difference = currentDate.Subtract(userDate);

关于c# - 如何将波斯日历日期字符串转换为 DateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10655116/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com