PDA

View Full Version : سوال: كم كردن 2 تاريخ شمسي موجود در Textbox از يكديگر



barnamenevisjavan
چهارشنبه 20 اردیبهشت 1391, 14:34 عصر
سلام من اين سوال رو چندبار بطور ديگه پرسيدم ولي جواب درست و حسابي نگرفتم من ميخوام از دوتا Textbox كه تو هركدومش 2تا تاريخ شمسي وجود داره تاريخ هارو از هم ديگه كم بكنم و در اخر تبديل به روز بشه. مثل مثال زير
textbox1=1391/2/20
textbox2=1391/3/25

كه اگر اين هارو از هم كم بكنيم ميشه 25 روز
يكي گفت از Datediff استفاده كن ولي جواب نداد لطفا كمك كنيد يه كدي بديد بهم

NasimBamdad
چهارشنبه 20 اردیبهشت 1391, 14:50 عصر
من یک همچین کدی دارم ، ببین به دردت می خوره ؟


if (tarkh_etebar_daf_box.Text.Length < 10)
{
MessageBox.Show("فرمت تاریخ صحیح نیست");

}
else
{
try
{
string dts1 = PersianDate.Now.ToShortDateString();
string dts2 = tarkh_etebar_daf_box.Text;

string a = dts1.Replace("/", "");
string b = dts2.Replace("/", "");

int z = Convert.ToInt32(b) - Convert.ToInt32(a);
if (z == 0 || z < 0)
{
MessageBox.Show("تاریخ اعتبار بیمه پایه گذشته است");
}
}
catch
{
MessageBox.Show("فرمت تاریخ صحیح نیست");

}
}

رافعی مهدی
چهارشنبه 20 اردیبهشت 1391, 17:13 عصر
سلام

using System.Globalization;


int year1, month1, day1;
int year2, month2, day2;
DateTime grDate1, grDate2;
PersianCalendar PC = new PersianCalendar();

ReadPersianDate(textBox1.Text.Trim(), out year1, out month1, out day1);
ReadPersianDate(textBox2.Text.Trim(), out year2, out month2, out day2);

grDate1 = PC.ToDateTime(year1, month1, day1, 0, 0, 0, 0);
grDate2 = PC.ToDateTime(year2, month2, day2, 0, 0, 0, 0);

TimeSpan timeSpan = grDate2.Subtract(grDate1);

textBox3.Text = timeSpan.Days.ToString();


private void ReadPersianDate(string dateText, out int year, out int month, out int day)
{
string[] dateParts = dateText.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);

if (dateParts.Length != 3)
throw new InvalidExpressionException("date text format is incorrect!");

year = int.Parse(dateParts[0]);
month = int.Parse(dateParts[1]);
day = int.Parse(dateParts[2]);
}

مثلاً اگر برای تست همون مقادیر پیشنهادی خودتون رو بدهید:

textBox1.Text -> 1391/2/20
textBox2.Text -> 1391/3/25

در textBox3 نمینویسه 25 روز!

barnamenevisjavan
چهارشنبه 20 اردیبهشت 1391, 18:30 عصر
ممنون عزيز