c# - Jalali/波斯日期验证错误

标签 c# datetime persian

我正在使用 C# 开发阿拉伯语/达里语/普什图语(针对阿富汗)的应用程序,还使用 ​​Jalali/波斯日历进行日期选择。我想在保存到数据库之前验证输入日期。我正在使用以下函数进行验证并将 Jalali/Persian 日历日期传递给此函数。当用户选择诸如“28/02/1393”之类的日期时,它可以完美运行,但它会抛出日期“31/02/1393”的错误。这两个日期都是有效的贾拉利/波斯日期。

我认为这个问题正在发生,因为考虑到这个日期的应用程序不知何故是英文的,并且英文日历中的第二个月没有任何第 31 天。请帮我找到解决方案。

static public bool ValidateParsianDate(string date)
{
    bool status = true;

    try
    {
        PersianCalendar persianCalendar = new PersianCalendar();
        CultureInfo persianCulture = new CultureInfo("fa-IR");
        DateTime persianDateTime = DateTime.ParseExact(date, "dd/MM/yyyy", persianCulture);
    }
    catch (Exception ex)
    {
        string msg = ex.Message;
        status = false;
    }

    return status;
}

感谢和问候,

拉杰夫

最佳答案

使用 PersianCalendar.ToDateTime( 国际年, 整月, 国际日, 国际小时, 整分钟, 第二个, 整数毫秒, 时代 ) 方法。

static public bool ValidateParsianDate(string date)
{
    bool status = true;

    try
    {
        PersianCalendar persianCalendar = new PersianCalendar();
        var dateParts = date.Split(new char[] { '/' }).Select(d=> int.Parse(d)).ToArray();
        var date = persianCalendar.ToDateTime(dateParts[2], dateParts[1], dateParts[0], 0, 0,0,0, /*8 era of year here **/);
 }
    catch (Exception ex)
    {
        string msg = ex.Message;
        status = false;
    }

    return status;
}

关于c# - Jalali/波斯日期验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23814225/

相关文章:

c# - 使用 AutoMapper 将复杂的 View 模型映射回具有集合属性的模型

python - 如何自定义 Python 日志记录的时间格式?

python - 将字符串转换为 NumPy datetime64 dtype

.net - 如何在某些文化中获取一年中的第几周?

c# - PdfSharp XGraphics.DrawString 不适用于波斯语等从右到左的语言

c# - 在 ASP.NET MVC 中将 WF 用于 Controller /操作

c# - .NET 反射中的转换

c# - WPF:如何将 OpenFileDialog 的结果绑定(bind)到已绑定(bind)的 TextBox.Text

sql - 判断月份是否包含条目

python - 将字典转换为具有波斯字符的 json