PDA

View Full Version : سوال: اختلاف 2 تاریخ شمسی



ebrahimi.atena
دوشنبه 06 خرداد 1392, 23:19 عصر
سلام من 2 تا تاریخ شمسی دارم در دو تا تکست باکس اختلاف آن ها را به روز میخواهم در یک تکست باکس دیگه نشون بدم به زبان سی شارپ
میشه کمکم کنید لطفا؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

FreeMagic
سه شنبه 07 خرداد 1392, 09:21 صبح
تا جایی که من متوجه شدم دوستمون نیازی به گرفتن تاریخ از سیستم نداره. تاریخ رو میگیره و حالا اختلاف رو میخواد
من خودم این کار رو انجام دادم و جواب هم گرفتم. فقط باید تاریخ به صورت کامل وارد بشه مثلا برای سه ماه اول به صورت 01 یا 02 یا 03 و به همین صورت برای 9 روز اول باید وارد بشه وگرنه خطا میده
این کدش هست
DateTime date1,date2;
PersianCalendar pc = new PersianCalendar();
string date_shamsi;
int y, m, d;

date_shamsi = textBox1.Text;
y = int.Parse(date_shamsi[0].ToString() + date_shamsi[1].ToString() + date_shamsi[2].ToString() + date_shamsi[3].ToString());
m = int.Parse(date_shamsi[5].ToString() + date_shamsi[6].ToString());
d = int.Parse(date_shamsi[8].ToString() + date_shamsi[9].ToString());
date1 = DateTime.Parse(pc.ToDateTime(y, m, d, 0, 0, 0, 0).ToString().Substring(0, 10));

date_shamsi = textBox2.Text;
y = int.Parse(date_shamsi[0].ToString() + date_shamsi[1].ToString() + date_shamsi[2].ToString() + date_shamsi[3].ToString());
m = int.Parse(date_shamsi[5].ToString() + date_shamsi[6].ToString());
d = int.Parse(date_shamsi[8].ToString() + date_shamsi[9].ToString());
date2 = DateTime.Parse(pc.ToDateTime(y, m, d, 0, 0, 0, 0).ToString().Substring(0, 10));

textBox3.Text = (date2 - date1).ToString();
textBox3.Text=textBox3.Text.Substring(0, textBox3.Text.IndexOf("."));
که اگه تاریخ به صورت میلادی باشه فقط 2 خط آخر کافیه:لبخند:
البته من خودم 5 تا تابع درست کردم که کلا دیگه همچین مشکلی پیش نمیاد
اگه نیاز داشتی بگو بزارم

مهدی هادیان2
سه شنبه 07 خرداد 1392, 12:17 عصر
بسم الله الرحمن الرحیم
با سلام
اگه تاریخ تون رو به صورت میلادی ذخیره کرده باشید؛ به راحتی میتونید برای اختلاف اونها از - استفاده کنید.
لازم به ذکر است که سایر عملیات نیز روی آنها جواب میدهد. مثلا Date+4؛ 4روز به تاریخ مورد نظر اضافه میکندو ...
موفق باشید.