سلام
چه طوری میشه ایام هفته(شنبه-یک شنبه و...) رو از کلاس PersianCalendar استخراج کرد؟
Printable View
سلام
چه طوری میشه ایام هفته(شنبه-یک شنبه و...) رو از کلاس PersianCalendar استخراج کرد؟
سلام
تابع GetDayOfWeek روز هفته را در قالب یک نوع شمارشی بازپس میدهد.
ولی در کل تفاوتی در روز هفته شمسی و میلادی وجود ندارد.
و خروجی تابع مذکور در تقویم شمسی دقیقاً برابر خصیصه DayOfWeek خود ساختار DateTime است.
ممنوننقل قول:
اینم یه تابع با نمایش ماه شمسی به صورت حروف
کد:public void ShamsiDateTime()
{
string[] fasl = new string[12];
fasl[0] = "فروردین";
fasl[1] = "اریبهشت";
fasl[2] = "خرداد";
fasl[3] = "تیر";
fasl[4] = "مرداد";
fasl[5] = "شهریور";
fasl[6] = "مهر";
fasl[7] = "آبان";
fasl[8] = "آذر";
fasl[9] = "دی";
fasl[10] = "بهمن";
fasl[11] = "اسفند";
string[] rooz = new string[7];
rooz[0] = "شنبه";
rooz[1] = "یکشنبه";
rooz[2] = "دوشنبه";
rooz[3] = "سهشنبه";
rooz[4] = "چهارشنبه";
rooz[5] = "پنجشنبه";
rooz[6] = "جمعه";
PersianCalendar farsi = new PersianCalendar();
int a;
DayOfWeek dd;
dd = farsi.GetDayOfWeek(DateTime.Now);
switch (dd.ToString())
{
case "Saturday":
labelItem2.Text = rooz[0].ToString();
break;
case "Sunday":
labelItem2.Text = rooz[1].ToString();
break;
case "Monday":
labelItem2.Text = rooz[2].ToString();
break;
case "Tuesday":
labelItem2.Text = rooz[3].ToString();
break;
case "Wednesday":
labelItem2.Text = rooz[4].ToString();
break;
case "Thursday":
labelItem2.Text = rooz[5].ToString();
break;
case "Friday":
labelItem2.Text = rooz[6].ToString();
break;
}
string str;
a = farsi.GetDayOfMonth(DateTime.Now);
labelItem2.Text += " " + Convert.ToString(a);
str = Convert.ToString(a);
a = farsi.GetMonth(DateTime.Now);
labelItem2.Text += " " + fasl[a - 1];
str += "/" + Convert.ToString(a);
a = farsi.GetYear(DateTime.Now);
labelItem2.Text += " " + Convert.ToString(a);
str += "/" + Convert.ToString(a);
}
سلام
کدتان کمی قابل بهینه سازی سرعتی و شفاف سازی بیشتر است، مثلاً
یا حتی بهتر ...کد://...
this.labelItem2.Text = ShamsiDateTime(DateTime.Now);
//...
public string ShamsiDateTime(DateTime value)
{
var calendar = new PersianCalendar();
string[] month = new string[]{
"فروردین",
"اریبهشت",
"خرداد",
"تیر",
"مرداد",
"شهریور",
"مهر",
"آبان",
"آذر",
"دی",
"بهمن",
"اسفند"};
string[] day = new string[]{
"یکشنبه",
"دوشنبه",
"سه شنبه",
"چهارشنبه",
"پنجشنبه",
"جمعه",
"شنبه"};
var dd = calendar.GetDayOfWeek(value);
return string.Format("{0} {1} {2} {3}",
day[(int)dd],
calendar.GetDayOfMonth(value),
month[calendar.GetMonth(value)],
calendar.GetYear(value));
}
یا ...کد:private readonly PersianCalendar m_calendar = new PersianCalendar();
private readonly string[] m_month = new string[]{
"فروردین",
"اریبهشت",
"خرداد",
"تیر",
"مرداد",
"شهریور",
"مهر",
"آبان",
"آذر",
"دی",
"بهمن",
"اسفند"};
private readonly string[] m_day = new string[]{
"یکشنبه",
"دوشنبه",
"سه شنبه",
"چهارشنبه",
"پنجشنبه",
"جمعه",
"شنبه"};
public string ShamsiDateTime(DateTime value)
{
var dd = this.m_calendar.GetDayOfWeek(value);
return string.Format("{0} {1} {2} {3}",
this.m_day[(int)dd],
this.m_calendar.GetDayOfMonth(value),
this.m_month[this.m_calendar.GetMonth(value)],
this.m_calendar.GetYear(value));
}