PDA

View Full Version : سوال: مشکل نمایش ایام هفته



hadi vafaii
سه شنبه 02 دی 1393, 01:30 صبح
عرض سلام دارم خدمت دوستان عزیز برنامه نویس بنده برای نمایش تاریخ و ایام هفته از این کد استفاده میکنم اما نمی دونم مشکل کد چیه که در نیمه دوم سال روزهای هفته رو یک روز جلوتر نشون میده یعنی امروز که سه شنبه هستش رو میزنه چهار شنبه





public string miladi2shmsi(DateTime _dt)
{

PersianCalendar pc = new PersianCalendar();

StringBuilder su = new StringBuilder();
su.Append(pc.GetYear(_dt).ToString("0000"));
su.Append("/");
su.Append(pc.GetMonth(_dt).ToString("00"));
su.Append("/");
su.Append(pc.GetDayOfMonth(_dt).ToString("0"));
return su.ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
PersianCalendar pc = new PersianCalendar();
string tody = miladi2shmsi(DateTime.Now);
lbldate.Text = tody;

string pdayname = string.Empty;
DateTime dt = Convert.ToDateTime(tody);
switch (pc.GetDayOfWeek(dt))
{
case DayOfWeek.Saturday:
pdayname = "شنبه";
break;
case DayOfWeek.Sunday:
pdayname = "یک شنبه";
break;
case DayOfWeek.Monday:
pdayname = "دوشنبه";
break;
case DayOfWeek.Tuesday:
pdayname = "سه شنبه";
break;
case DayOfWeek.Wednesday:
pdayname = "چهارشنبه";
break;
case DayOfWeek.Thursday:
pdayname = "پنج شنبه";
break;
case DayOfWeek.Friday:
pdayname = "جمعه";
break;

}
lblDay.Text = pdayname;

Mahmoud.Afrad
سه شنبه 02 دی 1393, 03:58 صبح
ورودی متد ToDateTime رشته ای به فرمت تاریخ میلادی باید باشه در صورتی که داری تاریخ شمسی بهش پاس میدی و انتظار داری به میلادی تبدیل بشه در حالی که تاریخ 1393/10/02 میلادی بدست میاد . در این کد اصلا نیازی به تبدیل شمسی به میلادی نیست و میتونی از DateTime.Now استفاده کنی

PersianCalendar pc = new PersianCalendar();
DateTime dt = DateTime.Now;
string tody = miladi2shmsi(dt);
lbldate.Text = tody;

string pdayname = string.Empty;

switch (pc.GetDayOfWeek(dt))
{
// ...

hadi vafaii
سه شنبه 02 دی 1393, 04:34 صبح
ورودی متد ToDateTime رشته ای به فرمت تاریخ میلادی باید باشه در صورتی که داری تاریخ شمسی بهش پاس میدی و انتظار داری به میلادی تبدیل بشه در حالی که تاریخ 1393/10/02 میلادی بدست میاد . در این کد اصلا نیازی به تبدیل شمسی به میلادی نیست و میتونی از DateTime.Now استفاده کنی

PersianCalendar pc = new PersianCalendar();
DateTime dt = DateTime.Now;
string tody = miladi2shmsi(dt);
lbldate.Text = tody;

string pdayname = string.Empty;

switch (pc.GetDayOfWeek(dt))
{
// ...


بازم مشکل برطرف نشد همونجور یک روز جلوتر نشون میده:ناراحت:

hadi vafaii
سه شنبه 02 دی 1393, 05:12 صبح
آقا مشکل برطرف شد فقط یه سوال داشتم اونم اینه که چرا تو نیمه اول سال درست کار میکرد و همچین مشکلی نداشت؟!:متفکر: