PDA

View Full Version : سوال: مقایسه دو تاریخ



skateskate
دوشنبه 02 آبان 1390, 15:53 عصر
سلام خسته نباشید

من تو پروژه ام باید یه تاریخ اتمام گارانتی مشخص کنم ، بدین صورت که وقتی کاربر مشخصات خودش رو می بینه ، مشاهده کنه که چند روز دیگه مونده تا گارانتیش تمام بشه، یه جورایی یه کانتر روز شمار که باید یه تاریخ اتمام گارانتی مثلا 92/02/03 بگیره و اونو با تاریخ الان مقایسه کنه.
می خواستم ببینم با توجه به اینکه این چهارمین پروژه مه و مبتدی هستم باید چیکار کنم؟

farhud
دوشنبه 02 آبان 1390, 17:47 عصر
شما حتما تاریخ شروع گارانتی را دارید. با اضافه کردن مدت گارانتی به تاریخ شروع، تاریخ پایان به دست می آید. برای این کار می تونید از DateTime.Now.AddDays() و یا مشابه آن استفاده کنید.

skateskate
دوشنبه 02 آبان 1390, 17:55 عصر
ممنون از شما دوست عزیز
اما مشکل من اینجاست که روزشمار گارانتی می خوام.

بیینید ، مشتری جنس رو می خره، من واسش یه دیتابیس درست می کنم و از تاریخ خرید 365 روز گارانتی داره (این با روشی که شما گفتید حل شد)
حالا مشکل من اینجاست که می خوام ،اون تاریخ اتمام گارانتی رو با امروز مقایسه کنم و یه کانتر بزارم، به عنوان مثال اگه مشتری فردا رفت توی سایت ، ببینه 364 روز مونده تا گارانتیش تمام بشه و اگه پس فردا رفت تو سایت 363 روز و الی آخر

skateskate
دوشنبه 02 آبان 1390, 18:12 عصر
ازین تاربع که در تاپیک زیر اومده بود استفاده کردم اما خیلی اشکال داره و منم نتونستم اشکالاتشو برطرف کنم
http://barnamenevis.org/showthread.php?300926-%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D8%AF%D9%88-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C-%D9%88-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AA%D8%B9%D8%AF%D8%A7%D8%AF-%D8%B1%D9%88%D8%B2-%D8%A8%D8%A7%D9%82%DB%8C%D9%85%D8%A7%D9%86%D8%AF%D 9%87&highlight=%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87+%D8 %AA%D8%A7%D8%B1%DB%8C%D8%AE

public int Difference2Date(int dateForm, int dateTo)
{
string MonthForm = dateForm.ToString().Substring(4, 1);
MonthForm += dateForm.ToString().Substring(5, 1);
string DaysForm = dateForm.ToString().Substring(6, 1);
DaysForm += dateForm.ToString().Substring(7, 1);
string yearsForm = dateForm.ToString().Substring(0, 1);
yearsForm += dateForm.ToString().Substring(1, 1);
yearsForm += dateForm.ToString().Substring(2, 1);
yearsForm += dateForm.ToString().Substring(3, 1);
//////////////////////////////////////////////////////////////
string MonthTo = dateTo.ToString().Substring(4, 1);
MonthTo += dateTo.ToString().Substring(5, 1);
string DaysTo = dateTo.ToString().Substring(6, 1);
DaysTo += dateTo.ToString().Substring(7, 1);
string yearsTo = dateTo.ToString().Substring(0, 1);
yearsTo += dateTo.ToString().Substring(1, 1);
yearsTo += dateTo.ToString().Substring(2, 1);
yearsTo += dateTo.ToString().Substring(3, 1);
//////////////////////////////////////////////////////////////
DateTime t1 = new DateTime(int.Parse(yearsForm), int.Parse(MonthForm), int.Parse(DaysForm), 0, 0, 0, 0);
DateTime t2 = new DateTime(int.Parse(yearsTo), int.Parse(MonthTo), int.Parse(DaysTo), 0, 0, 0, 0);
TimeSpan t = t2 - t1;
string TS = t.ToString();
if (TS.Length == 10)
{
return int.Parse(TS.ToString().Substring(0, 1));
}
else if (TS.Length == 11)
{
return int.Parse(TS.ToString().Substring(0, 2));
}
else
{
return int.Parse(TS.ToString().Substring(0, 1));
}
}

mahdioo12194
دوشنبه 02 آبان 1390, 21:59 عصر
http://www.beansoftware.com/ASP.NET-FAQ/DateTime-TimeSpan.aspx