PDA

View Full Version : سوال: مشکل در بدست آوردن روز بعد در PersianCalender



mahdishad
جمعه 01 دی 1391, 10:28 صبح
سلام مهندسین عزیز .
من می خواستم روز بعد رو با persianCalender بدست بیارم . این کد رو هم نوشتم ولی برای ماه دی و بهمن درست عمل نمی کنه .


DateTime dtt=new DateTime(1388,10,30); //p
DateTime next_day = p.AddDays(dtt,1); //p

با این دستور ها مقداره next_day 1388/10/31 میشه . :ناراحت:
نمیدونم چرا این طوری میشه اگه میشه راهنماییم کنید.

veniz2008
جمعه 01 دی 1391, 10:56 صبح
سلام. اول تاریخ سیستم رو که به میلادی هست دریافت کنید و یک روز به اون اضافه کنید و بعد به شمسی برگردونید. کد مورد نیازتون این میشه :

DateTime tomorrow = DateTime.Now.AddDays(1);
PersianCalendar pc = new PersianCalendar();
string result = pc.GetYear(tomorrow).ToString() +"/" + pc.GetMonth(tomorrow).ToString() + "/" + pc.GetDayOfMonth(tomorrow).ToString();
MessageBox.Show(result);
موفق باشی.

Ghaem66
جمعه 01 دی 1391, 11:10 صبح
اگه هم بخواین تاریخ مورد نظرتونو یه روز اضافه کنید، یعنی اینکه تاریخ جاری سیستم مد نظرتون نباشه مثل همون تاریخی که خودتون مثال زدید، باید اول اون تاریخ رو به میلادی تبدیل کنید و بعد به تاریخ میلادی تعداد روزتون رو اضاف کنید و سپس تبدیل به شمسیش کنید.

DateTime dt = pc.ToDateTime(1388, 10, 30, 0, 0, 0, 0);
dt = dt.AddDays(1);
textBox1.Text = pc.GetYear(dt).ToString() + "/" + pc.GetMonth(dt).ToString("d2") + "/" + pc.GetDayOfMonth(dt).ToString("d2");

mahdishad
چهارشنبه 06 دی 1391, 13:20 عصر
مرسی با این روش حل شدد :تشویق: