PDA

View Full Version : سوال: مشکل با PersianCalendar.GetDayOfWeek



Ali_Mor
شنبه 10 اسفند 1387, 11:32 صبح
من با نتیجه ای که GetDayOfWeek از کلاس PersianCalendar برمیگرداند مشکل دارم. معمولا یک روز جلوتر یا عقب تر بعنوان روز هفته برمیگرداند. از دوستان کسی با این مشکل روبرو شده است؟

mostafaaa
شنبه 10 اسفند 1387, 11:47 صبح
سلام دوست من
نه من مشکلی تا به حال باهاش نداشتم ،
فقط توجه داشته باش فرمت روزی که برگردانده میشه مانند روزهای ما نیست یعنی وقتی عدد 0 رو برمیگردونه منظور یکشنبه(که روز تعطیل میلادیه) است و الا آخر ...

مهدی کرامتی
شنبه 10 اسفند 1387, 13:41 عصر
بخاطر اینه که در Culture مربوطه FirstDayOfWeek یکشنبه تعریف شده است، و میبایست به شنبه تغییر داده شود.

arsalansalar
شنبه 10 اسفند 1387, 14:04 عصر
بیا string روز از همین تابع بگیر.بعد بیا با یک حلقه case روز ها رو به فارسی برگردون.
این کار راحت تره.

faryad_mfa
سه شنبه 25 مهر 1391, 12:49 عصر
بیا string روز از همین تابع بگیر.بعد بیا با یک حلقه case روز ها رو به فارسی برگردون.
این کار راحت تره.

با این کد میتونید روزهای فارسی و فرمت روز و ماه و سال رو تعریف کنید


public static void InitPersianDateTimeFormat(DateTimeFormatInfo info)
{
if (info == null)
return;
PersianCalendar calendar = new PersianCalendar();
bool readOnly = (bool)dateTimeFormatInfoReadOnly.GetValue(info);
if (readOnly)
{
dateTimeFormatInfoReadOnly.SetValue(info, false);
}
dateTimeFormatInfoCalendar.SetValue(info, calendar);
object obj2 = dateTimeFormatInfoCultureTableRecord.GetValue(info );
cultureTableRecordUseCurrentCalendar.Invoke(obj2, new object[] { calendarID.GetValue(calendar, null) });
info.AbbreviatedDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
info.ShortestDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
info.DayNames = new string[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };
info.AbbreviatedMonthNames = new string[] { "فروردین", "ارديبهشت", "خرداد", "تير", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
info.MonthNames = new string[] { "فروردین", "ارديبهشت", "خرداد", "تير", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
info.AMDesignator = "ق.ظ";
info.PMDesignator = "ب.ظ";
info.FirstDayOfWeek = DayOfWeek.Saturday;
info.FullDateTimePattern = "yyyy MMMM dddd, dd HH:mm:ss";
info.LongDatePattern = "yyyy MMMM dddd, dd";
info.ShortDatePattern = "yyyy/MM/dd";
if (readOnly)
{
dateTimeFormatInfoReadOnly.SetValue(info, true);
}
}