مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

hossein-r1369

عضویت از 1392/09/22

شمسی کردن کامپوننت های date editor و scheduler در devexpress

  • چهارشنبه 31 مرداد 1397
  • 13:23
تشکر میکنم

با سلام

کسی از دوستان هست که تونسته باشه با نوشتن کلاسی کنترل date editor کامپوننت devexpress رو شمسی کنه؟ بنده چنین کلاسی رو برای کامپوننت telerik دارم اما اگه کسی برای devexpress رو داره بزاره هم بنده و هم بقیه دوستان استفاده کنن.

با سپاس

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ehsan hosseinnejad

عضویت از 1396/11/10

  • دوشنبه 26 شهریور 1397
  • 17:31

سلام توی سایت خود Dev جستجو کنی  میبینی. توی نسخه 2015آورده. اگه اشتباه نکنم.

کاربر سایت

hossein-r1369

عضویت از 1392/09/22

  • سه شنبه 27 شهریور 1397
  • 09:08

سلام دوست عزیز

البته فک کنم منظور شما از فارسی کردن، نوشته های کنترل هاست، آره این موضوع که حل شده است. با استفاده از satellite میشه کنترل ها رو هم فارسی کرد.

اما منظور بنده شمسی کردن date editor هست که به صورت عادی شمسی نمیشه.

من تا حدی تونستم این کار رو با مِتد زیر انجام بدم:

public void ToPersian(DevExpress.XtraEditors.DateEdit DateTimePicker)
{
    System.Globalization.PersianCalendar Shamsi = new System.Globalization.PersianCalendar();
    DateTime PersianToday = Shamsi.GetYear(DateTime.Now) + "/" + Shamsi.GetMonth(DateTime.Now) + "/" + Shamsi.GetDayOfMonth(DateTime.Now);
    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fa-IR");
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthGenitiveNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.AbbreviatedMonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.AbbreviatedMonthGenitiveNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.AbbreviatedDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortestDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.DayNames = new string[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.AMDesignator = "ق.ظ";
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.PMDesignator = "ب.ظ";
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern = "HH:mm";
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.DateSeparator = "/";
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.FullDateTimePattern = "dd/MM/yyyy HH:mm";
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Saturday;
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongDatePattern = "dd/MM/yyyy HH:mm";
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.SetAllDateTimePatterns(new string[] { "dd/MM/yyyy" }, 'd');
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.SetAllDateTimePatterns(new string[] { "dddd, dd MMMM yyyy" }, 'D');
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.SetAllDateTimePatterns(new string[] { "yyyy MMMM" }, 'y');
    System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.SetAllDateTimePatterns(new string[] { "yyyy MMMM" }, 'Y');

    DateTimePicker.EditValue = PersianToday;
    DateTimePicker.Properties.TodayDate = PersianToday;
    DateTimePicker.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
    DateTimePicker.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
    DateTimePicker.Properties.FirstDayOfWeek = DayOfWeek.Saturday;
    DateTimePicker.Properties.EditMask = "yyyy/MM/dd";
    DateTimePicker.Properties.Mask.UseMaskAsDisplayFormat = true;
    DateTimePicker.RightToLeft = RightToLeft.Yes;
}

نتیجه کار به شکل زیر شده:

فقط اینجا یه مشکلی هست روزهای هفته درست قرار نمیگیره و شش ماه دوم 31 روز هم داره ماه اسفند!! که اگر اساتید راهنمایی کنن این مورد هم حل میشه....

با سپاس

کاربر سایت

ehsan hosseinnejad

عضویت از 1396/11/10

  • پنجشنبه 29 شهریور 1397
  • 05:41

سلام بزرگوار 

یه سری dll جدید به درخواست کاربرهاش داده بود. هم برای هجری هم برای شمسی مراجعه کنی می بینی برادر. عکسش رو هم برات پیوست کردم. 

امیدوارم مفید واقع بشه.

عکسش رو از خود سایت Dev گرفتم.

فایل های ضمیمه

کاربر سایت

hossein-r1369

عضویت از 1392/09/22

  • پنجشنبه 29 شهریور 1397
  • 10:52

سلام دوست من
میشه لینکش رو برام بفرستید....

کاربر سایت

ehsan hosseinnejad

عضویت از 1396/11/10

  • شنبه 31 شهریور 1397
  • 03:02
سلام لینکش رو برنداشتم و به بخاطر هم ندارم ولی اگه یه جستجو بزنی پیدا میکنی.
کاربر سایت

mammadkoma

عضویت از 1398/05/25

  • چهارشنبه 8 آبان 1398
  • 15:47

با سلام من هم میخوام DateTimePicker و Scheduler فارسی در devexpress mvc core داشته باشم. کسی این کار رو کرده؟

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)