c# - Check if the date time slots are available in a week -
i have scenario user can create , add rule. rule assigned time slot in week execution. suppose second rule added, can not assigned between time slot of first one.
note: have implement single week i.e., monday sunday. no second week exists. single week logic run every week entire year.
thorough attempt, if 1 rule running tuesday friday able assign time slots of merely monday or saturday sunday rule not able book/assign time slot saturday monday (i.e., starting point of week).
following attempt far:
foreach (var item in rules) { datetime startdatewanttobook = convert.todatetime((datetime.today.month + "/" + startday + "/" + datetime.today.year) + " " + startdaytime); datetime enddatewanttobook = convert.todatetime((datetime.today.month + "/" + endday + "/" + datetime.today.year) + " " + enddaytime); datetime startdatealreadybooked = convert.todatetime((datetime.today.month + "/" + item.startday + "/" + datetime.today.year) + " " + item.startdaytime); datetime enddatealreadybooked = convert.todatetime((datetime.today.month + "/" + item.endday + "/" + datetime.today.year) + " " + item.enddaytime); //for same days , sun-sat days if ((enddatealreadybooked - startdatealreadybooked).totalseconds >= 0) { if ((startdatewanttobook <= startdatealreadybooked && enddatewanttobook <= startdatealreadybooked) || (startdatewanttobook >= enddatealreadybooked && enddatewanttobook >= enddatealreadybooked) || (enddatewanttobook <= startdatealreadybooked && startdatewanttobook >= enddatealreadybooked)) { isexist = false; } else isexist = true; } else { if ((startdatewanttobook <= startdatealreadybooked && enddatewanttobook <= startdatealreadybooked) && (startdatewanttobook >= enddatealreadybooked && enddatewanttobook >= enddatealreadybooked)) { isexist = false; } else isexist = true; } if (isexist == true) { break; } } please suggest should edited... or fresh logic this...
edit : how time slots colored based on rule..white spaces unoccupied.

latest edit :
in case taking sunday=1, monday=2.....saturday=7. let's have scenario, booked sunday 10:00 sunday 14:00. my
existingstartdate : 7/1/2015 10:00
existingenddate : 7/1/2015 02:00 pm
now, booking time slot monday 10:00 sunday 06:00 pm so,
requestedstartdate : 7/2/2015 10:00
requestedenddate : 7/1/2015 06:00 pm.
in case no if() conditions passes..uploaded image reference..
seems want check overlaps between 2 periods. that's done "cross check":
bool overlaps = false; if( (startdatewanttobook <= enddatealreadybooked ) && (startdatealreadybooked <= enddatewanttobook) ) overlaps = true;
Comments
Post a Comment