【问题标题】:How to set a persian calender on windows form in C#如何在 C# 中的 windows 窗体上设置波斯日历
【发布时间】:2016-03-22 11:50:39
【问题描述】:

使用此代码我强制文本框只接受波斯语单词:

private void CommenttxtBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
    System.Globalization.CultureInfo Language = 
        new System.Globalization.CultureInfo("Fa-ir");

    InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(Language);
}

还有一个计时器,我在表格上放了一个英文日历:

private void ShowTime_Tick(object sender, EventArgs e)
{
    ShowTimelbl.Text = DateTime.Now.ToString();
}

有没有办法让日期时间显示波斯 (jalali) 时间?

【问题讨论】:

标签: c#


【解决方案1】:

您需要创建PersianCalendar 类的实例。 它可以将任何DateTime 值转换为波斯年、月和日。

var persianCalendar = new PersianCalendar();
var dateTime = DateTime.Now;
var year = persianCalendar.GetYear(dateTime);
var month = persianCalendar.GetMonth(dateTime);
var day = persianCalendar.GetDayOfMonth(dateTime);
var date = string.Format("{0}/{1}/{2}", year, month, day);

然后将这个date 字符串显示给用户。

【讨论】:

    【解决方案2】:

    您可以将CultureInfo 传递给ToString 方法:

    DateTime.Now.ToString(new System.Globalization.CultureInfo("Fa-ir"));
    

    结果:

    "03/22/2016 12:51:28 ب.ظ"
    

    【讨论】:

      【解决方案3】:

      你们俩, 使用您的指南,我编辑了鳕鱼以显示时间:

              private void ShowTime_Tick(object sender, EventArgs e)
          { 
              var PersianCalender = new PersianCalendar();
              var datetime = DateTime.Now;
              var year = PersianCalender.GetYear(datetime);
              var month = PersianCalender.GetMonth(datetime);
              var day = PersianCalender.GetDayOfMonth(datetime);
              var hour = PersianCalender.GetHour(datetime);
              var minute = PersianCalender.GetMinute(datetime);
              var second = PersianCalender.GetSecond(datetime);
      
              var datetimeshow = string.Format
                           ("{0}:{1}:{2}  {3}/{4}/{5}", hour, minute, second, year, month, day);
              ShowTimelbl.Text = datetimeshow;
          }
      

      【讨论】:

        【解决方案4】:
        using System.Globalization;
        
        DateTime dt = DateTime.Now;
        PersianCalendar jc = new PersianCalendar();
        private string[] weeks = new string[] {"شنبه", "یکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه" };
        private string[] months = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر","مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند" };
        private string[] days = new string[] { "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه", "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده", " بیست", "بیست و یک", "بیست و دوم", "بیست و سوم", "بیست و چهارم", "بیست و پنجم", "بیست و ششم", "بیست و هفتم", "بیست و هشتم", "بیست و نهم", "سی" };
        private void Persian_Date_Load(object sender, EventArgs e)
            {
               lbl.Text="امروز"+"\r\n"+ jc.GetYear(DateTime.Now) + "/" + jc.GetMonth(DateTime.Now) + "/" + jc.GetDayOfMonth(DateTime.Now)+"\r\n"+ jc.GetYear(DateTime.Now).ToString()+" "+weeks[(int)jc.GetDayOfWeek(DateTime.Now)+1] +" "+ days[jc.GetDayOfMonth(DateTime.Now)-1]+ " " + months[jc.GetMonth(DateTime.Now) - 1];
        
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-21
          • 2013-11-13
          • 1970-01-01
          • 2012-03-12
          相关资源
          最近更新 更多