PDA

View Full Version : مبتدی: تبدیل این کد تاریخ به شمسی



piter11
سه شنبه 09 تیر 1394, 18:21 عصر
سلام من کد زیرو نوشتم تو تکس باکس 1 تاریخ رو به صورت شمسی مینویسم تو تکس باکس 2 تعداد ماه اضافه میکنم به تاریخ شمسیه الان مسیج باکس میگیرم ماه اضافه میکنه ولی بصورت میلادی نمایشش میده حالا چطور به شمسی تبدیلش کنم؟ با سپاس

PersianCalendar pc = new PersianCalendar();
DateTime dt = pc.ToDateTime(int.Parse(textBox1.Text.Substring(0, 4)),int.Parse(textBox1.Text.Substring(5,2)),int.Pa rse(textBox1.Text.Substring(8,2)),0,0,0,0);
int count = int.Parse(textBox2.Text);
string a= dt.AddMonths(count).ToString();

RmeXXXXXXXXX
سه شنبه 09 تیر 1394, 18:32 عصر
var pc=new PersianCalender();
var dt= DateTime.Now;
dt=dt.AddMonth(25);
int pcYear= pc.GetYear(dt);
int pcMonth=pc.GetMonth(dt);
int pcDay=pc.GetDayOfMonth(dt);

reza_ali202000
سه شنبه 09 تیر 1394, 18:33 عصر
سلام من کد زیرو نوشتم تو تکس باکس 1 تاریخ رو به صورت شمسی مینویسم تو تکس باکس 2 تعداد ماه اضافه میکنم به تاریخ شمسیه الان مسیج باکس میگیرم ماه اضافه میکنه ولی بصورت میلادی نمایشش میده حالا چطور به شمسی تبدیلش کنم؟ با سپاس


PersianCalendar pc = new PersianCalendar();
DateTime dt=pc.ToDateTime(int.Parse(textBox1.Text.Substring (0,4)),int.Parse(textBox1.Text.Substring(5,2)),int .Parse(textBox1.Text.Substring(8,2)),0,0,0,0);
int count = int.Parse(textBox2.Text);
string a= dt.AddMonths(count).ToString();


اول متغییر رو تبدیل کردین بعد ماه بهش اضاف کردین ولی میریزید توی متغییر استرینگ!
کلا یه بازنگری توی جانویسی خطهای برنامتون انجام بدین.

piter11
سه شنبه 09 تیر 1394, 18:40 عصر
var pc=new PersianCalender();
var dt= DateTime.Now;
dt=dt.AddMonth(25);
int pcYear= pc.GetYear(dt);
int pcMonth=pc.GetMonth(dt);
int pcDay=pc.GetDayOfMonth(dt);

........................
این کد کار نمیکنه ! متوجه من اصلا نشدم ازش

piter11
سه شنبه 09 تیر 1394, 18:42 عصر
اول متغییر رو تبدیل کردین بعد ماه بهش اضاف کردین ولی میریزید توی متغییر استرینگ!
کلا یه بازنگری توی جانویسی خطهای برنامتون انجام بدین.

برای اضافه کردن به ماه اول تبدیل کردم به میلادی اون متغیر استرینگ a همینجوریه واسه نمایش تو مسیج باکسی که نشون میده تاریخ رو به میلادی

piter11
سه شنبه 09 تیر 1394, 18:43 عصر
الان مشکل من تو این خط اینجا الان تاریخ گرفته شده رو ماه بهش اضافه کرده ولی به صورت میلادی نمایشش میده
dt.AddMonths(count).ToString();

piter11
سه شنبه 09 تیر 1394, 19:25 عصر
ممنون دوستان خودم به این شکل درستش کردم :چشمک:

PersianCalendar pc = new PersianCalendar();

DateTime dt=pc.ToDateTime(int.Parse(textBox1.Text.Substring (0,4)),int.Parse(textBox1.Text.Substring(5,2)),int .Parse(textBox1.Text.Substring(8,2)),0,0,0,0);
int count = int.Parse(textBox2.Text);

string Year, Day, Month;
Year = pc.GetYear(dt.AddMonths(count)).ToString();
Month = pc.GetMonth(dt.AddMonths(count)).ToString();
Day = pc.GetDayOfMonth(dt.AddMonths(count)).ToString();
Day = (Day.Length == 1) ? "0" + Day : Day;
Month = (Month.Length == 1) ? "0" + Month : Month;
string d = Year + '/' + Month + '/' + Day.ToString();
MessageBox.Show(d);