這裏我的目的是選擇 「開始」(begin_prefix)和 「結束」(end_prefix)間/ TIMERANGE LINQ
但之間的所有條目(登記)!重要的是:
如果我在07:25-10:00的預訂 - 你查詢09:00-10:00它應該仍然顯示預訂,因爲它保留10的房間無論如何什麼..
所以..
07.25-10.00預訂意味着查詢09:00-10.00仍然返回09內預約的列表:00-10.00 (這意味着07.25-10.00包括)
public static List<booking> Today(DateTime begin, DateTime end)
{
try
{
IFormatProvider Culturez = new CultureInfo(ConfigurationManager.AppSettings["locale"].ToString(), true);
DateTime begin_prefix = DateTime.ParseExact(begin.ToString(), "dd-MM-yyyy HH:mm:ss", Culturez);
DateTime end_prefix = DateTime.ParseExact(end.ToString(), "dd-MM-yyyy HH:mm:ss", Culturez);
dbDataContext db = new dbDataContext();
// gives bookings BEFORE begin_prefix (why?)
IQueryable<booking> bQ = from b in db.bookings
where begin_prefix >= b.Starts &&
b.Ends <= end_prefix &&
b.Ends > b.Starts &&
b.pointsbookings.Count > 0
select b;
// ^gives bookings BEFORE begin_prefix (why?)
List<booking> bL = bQ.ToList();
return bL;
}
catch (Exception)
{
throw;
}
}
我試圖獲得這種權利有一段時間了..好像每次我將其校正成新的東西,外側的兩個新的重疊或選擇開始/結束日期似乎出現:(
更新條件和消息來源:預訂必須在「begin_prefix」和「end_prefix」中,或在同一時間。
..目前上面的代碼給我預訂之前,begin_prefix日期,這是不是有意!我們在2011年,我從2010年開始預訂! **
NEW !!更新:
這是我有:
SEARCH.START> = BOOKING.START
BOOKING.END < = SEARCH.END
...問題出現時。 。
BOOKING條目:10:00(開始)-14:00(完)
這意味着根據以上: 08.59> = 10.00 (SEARCH.START> = BOOKING.START)
它永遠不會包含它。但它應該,因爲這是相同的房間和座位是單獨預訂!
告訴我們您的具體標準是什麼。 「開始」和「結束」都需要在「begin_prefix」和「end_prefix」之內,或者是什麼? – LukeH 2011-03-10 14:07:49
是在或在確切的時間。 – dezza 2011-03-10 14:28:48
很多人會努力幫助你。刪除這個問題會導致他們失去代表。如果您的問題已通過其他方式解決,請在解決方案中留下答案,並在選項可用時將其選中。幫助有類似問題的人,不會懲罰那些試圖幫助的人。 – Will 2011-03-11 14:30:08