PDA

View Full Version : سوال: محاسبه روزهای بین دو تاریخ



maryam.g
یک شنبه 17 آذر 1387, 11:09 صبح
سلام !
خواهش میکنم کمکم کنید.......:گریه::گریه::گریه:

من یک برنامه رزرواسیون هتل رو با asp.net تحت سی شارپ می نویسم .کاربر دو تاریخ میلادی ورود وخروج از هتل رو وارد می کنه مثلا از تاریخ 2008/5/5 تا 2008/17/5 رو وارد تکس باکس میکنه و اگه در بین این تاریخ اتاق خالی بود ؛ رزرو میکنه .حالا من چطوری تاریخ های بین این دو تاریخ رو می تونم بدست بیارم تا تک تک در دیتا بیس ذخیره کنم.یعنی تاریخ های 2008/6/5و2008/7/5و تا 2008/17/5 .....

ممنونم اگه کمکم کنید:لبخندساده:

mehdi.mousavi
یک شنبه 17 آذر 1387, 11:31 صبح
سلام !
خواهش میکنم کمکم کنید.......:گریه::گریه::گریه:

من یک برنامه رزرواسیون هتل رو با asp.net تحت سی شارپ می نویسم .کاربر دو تاریخ میلادی ورود وخروج از هتل رو وارد می کنه مثلا از تاریخ 2008/5/5 تا 2008/17/5 رو وارد تکس باکس میکنه و اگه در بین این تاریخ اتاق خالی بود ؛ رزرو میکنه .حالا من چطوری تاریخ های بین این دو تاریخ رو می تونم بدست بیارم تا تک تک در دیتا بیس ذخیره کنم.یعنی تاریخ های 2008/6/5و2008/7/5و تا 2008/17/5 .....

ممنونم اگه کمکم کنید:لبخندساده:

سلام.
به نظر من از دید بانک اطلاعاتی، این روش صحیح نیست. فرض کنید، کاربر خواست 3 ماه رو رزرو کنه، اونوقت شما میخواهید 90 روز رو در بانک ذخیره کنید؟

در هر حال، در پاسخ به سوالتون میتونید اینطور عمل کنید:



TimeSpan diff = end.Subtract(begin);
for (Int32 i = 0; i < diff.Days; i++)
{
DateTime dt = begin.AddDays(i);
//Do whatever you need with "dt"
}
که begin تاریخ شروع و end تاریخ پایان هستش.

maryam.g
یک شنبه 17 آذر 1387, 11:40 صبح
سلام
ممنون از پاسختون.
اگر نخواهم تک تک روز ها رو ثبت کنم شما چه پیشنهادی دارید..
بالاخره هر اتاقی یک فیلد تاریخ رزرو داره که بهر حال باید پر بشه.

ممنونم:قلب:

naeeme
یک شنبه 17 آذر 1387, 12:47 عصر
یه راه حل اینه که به جای اینکه روز رزرو رو نگه دارین، بازه تاریخ رزرو رو نگه دارین. این جوری می تونین یک رکورد درج کنین که مدت زمان اقامت در اون اتاق توسط یک فرد رو مشخص می کنه. برای اینکار هم به 2 تا فیلد تاریخ نیاز دارین که اولی شروع بازه و دومی پایان بازه هست.

zare69
پنج شنبه 25 فروردین 1390, 14:48 عصر
string tarikh1 = "2008/05/05";
string tarikh2 = "2008/17/05";
string sal = tarikh1.Substring(0, 4);
string mah = tarikh1.Substring(5, 2);
string roz = tarikh1.Substring(8, 2);
string sal1 = tarikh2.Substring(0, 4);
string mah1 = tarikh2.Substring(5, 2);
string roz1 = tarikh2.Substring(8, 2);
DateTime d1 = new DateTime(int.Parse(sal), int.Parse(mah), int.Parse(roz));
DateTime d2 = new DateTime(int.Parse(sal1), int.Parse(mah1), int.Parse(roz1));
int M = Math.Abs((d1.Year - d2.Year));
int D = ((M * 365) + Math.Abs((d1.Month - d2.Month)) * 30 + Math.Abs((d1.Day - d2.Day)));

امیدوارم به دردت بخوره