ورود

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



ariobarzan
جمعه 31 مرداد 1399, 10:25 صبح
با سلام خدمت دوستان عزیز
من یک سری بازه زمانی دارم که تاریخ شروع و خاتمه اونها مشخصه میخوام جمع اون روزها را بدونم چند روزه هست
مشکل این هست که این بازه های زمانی ممکنه در یک قسمت هایی مشترک باشن تعداد این بازه های زمانی هم نا محدود هست
مثلا از تاریخ 95/02/23 تا 96/01/18 محدوده بعدی از تاریخ 95/06/11 تا 97/03/20 محدوده بعدی از تاریخ 97/09/21 تا 97/11/20
اگر محدوده ها نقطه مشترک نداشتند راحت بود ولی همونطور که ملاحظه می فرمایید هر محدوده ممکنه با محدوده های دیگه نقاط مشترک داشته باشه یا نداشته باشه
لطفا راهنمایی بفرمایید
چیزی که به ذهن خودم رسید این بود که از ماتریس استفاده کنم بطوری که کمترین تاریخ اولین خانه ماتریس و بیشترین تاریخ آخرین خانه باشه و بعد با توجه به هر محدوده خانه های ماتریس را پر کنم
و بعد تعداد خانه های پر را بشمارم ولی راه حل اجراشو نمی دونم
دوستان اگر کمک کنند و راه حلی را ارائه کنند ممنون میشم

یوسف زالی
شنبه 01 شهریور 1399, 15:54 عصر
سلام. با آرایه می تونید طبق روشی که گفتید استفاده کنید.
با دیتابیس هم می تونید، یک جدول تقویم بسازید، روش سلکت بزنید که شرایطش تاریخ های بالایی باشه، و در نهایت ازش تعداد بگیرید.


select count(1) from CalendarTbl
where
(SDate between Date1 and Date2) or
(SDate between Date3 and Date4) or
(SDate between Date5 and Date6) or
(SDate between Date7 and Date8) or
(SDate between Date9 and Date10) ..

دلفــي
پنج شنبه 13 شهریور 1399, 09:44 صبح
با سلام خدمت دوستان عزیز
من یک سری بازه زمانی دارم که تاریخ شروع و خاتمه اونها مشخصه میخوام جمع اون روزها را بدونم چند روزه هست
مشکل این هست که این بازه های زمانی ممکنه در یک قسمت هایی مشترک باشن تعداد این بازه های زمانی هم نا محدود هست
مثلا از تاریخ 95/02/23 تا 96/01/18 محدوده بعدی از تاریخ 95/06/11 تا 97/03/20 محدوده بعدی از تاریخ 97/09/21 تا 97/11/20
اگر محدوده ها نقطه مشترک نداشتند راحت بود ولی همونطور که ملاحظه می فرمایید هر محدوده ممکنه با محدوده های دیگه نقاط مشترک داشته باشه یا نداشته باشه
لطفا راهنمایی بفرمایید
چیزی که به ذهن خودم رسید این بود که از ماتریس استفاده کنم بطوری که کمترین تاریخ اولین خانه ماتریس و بیشترین تاریخ آخرین خانه باشه و بعد با توجه به هر محدوده خانه های ماتریس را پر کنم
و بعد تعداد خانه های پر را بشمارم ولی راه حل اجراشو نمی دونم
دوستان اگر کمک کنند و راه حلی را ارائه کنند ممنون میشم

فکر کنم یه همچین چیزی مد نظرتون هست:
152116
152117
152118