将公历显示为Hijri日历asp.net网页表单

本文关键字:asp net 网页 表单 日历 Hijri 显示 | 更新日期: 2023-09-27 18:28:30

我需要在asp.net网络表单中显示Hijri日历。为此,我尝试使用以下代码,这些代码实际上是在VB版本中http://findanycode.com/54laAAnmwlGw/how-to-display-arabic-dates-in-the-gregorian-calendar.html

我把这个代码转换成了C#,但它并没有编译

它让我在Foreach循环中指出,查询主体必须以选择子句结束

CultureInfo ci=CultureInfo.CreateSpecificCulture("ar SA");

     Response.Write("<table width=300px>");
foreach (CultureInfo ci in (from c in CultureInfo.GetCultures(CultureTypes.AllCultures) orderby c.Name where c.Name.StartsWith("ar-ae")))
        {
                Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(ci.Name);
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(ci.Name);
                Response.Write(string.Format("<tr><td>{0}</td> <td style='direction:rtl;font-size:20px;'>{1:d MMMM yyyy}</td></tr>", ci.Name, Today));
        }
Response.Write("</table>");
Response.End();

将公历显示为Hijri日历asp.net网页表单

错误本身告诉您,您必须在过滤数据后选择一些内容,因此您的linq查询应该是

from c in CultureInfo.GetCultures(CultureTypes.AllCultures) orderby c.Name where c.Name.StartsWith("ar-AE") select c;

你也可以使用下面提到的查询

CultureInfo.GetCultures(CultureTypes.AllCultures).Where(p => p.Name.StartsWith("ar-AE")).OrderBy(q => q.Name);

您已经使用了ar-ae,它应该是ae-AE