當涉及到讓日期和時間以串列形式顯示在我的應用程式的視圖頁面時,我遇到了一個問題。
示例:
public IList< Appointment> GetTodayAppointments()
{
DateTime today = DateTime.Now.Date。
return db.Appointments
.Where(e => e.StartDateTimeBooking == today)
.Include(e => e.Patient)
.ThenInclude(p => p.User)
.Include(e => e.Doctor)
.ThenInclude(d => d.User)
.OrderBy(d => d.StartDateTimeBooking)
.ToList()。
}
這是我的代碼,為了節省重復的代碼來獲得明天和過去的約會,這將是代碼的相同展望。
我已經嘗試實作運算子"<"。這對過去的約會非常有效,并且將只顯示過去的約會,而沒有其他。
問題是。當我試圖使用"=="它不會顯示今天的約會或任何約會。然而,如果我使用">=",它將顯示今天和即將到來的約會。這是偉大的,但我不需要它為明天的約會。我希望明天是獨立的。
我注意到我使用的是DateTime,我確實有日期和時間存盤在我的變數中。
我知道如果我需要得到今天的約會,我想做這樣的事情:
我知道如果我需要得到今天的約會,我想做這樣的事情:
StartDateTimeBooking >= YESTERDAY_MIDNIGHT & & StartDateTimeBooking <= TODAY_MIDNIGHT
我的問題是我的時間是24小時的。我今天需要什么方程式或代碼來確保。 今天,過去,和即將到來的約會將作業?
我知道我的時間是以24小時為單位的。
我知道我已經非常接近解決方案了,但如果有任何幫助,我將非常感激。
更新:這個邏輯是正確的嗎?
這給了我今天的約會串列:
這給了我今天的約會串列。
.Where(e => e.StartDateTimeBooking >= today && e.StartDateTimeBooking < today.AddDays(1)
這只給了我明天的約會串列:
這只給了我明天的約會串列。
Where(e => e.StartDateTimeBooking > today.AddDays(1) && e.StartDateTimeBooking < today.AddDays(2)
這就給了我一個即將到來的約會串列
.Where(e => e.StartDateTimeBooking >= today)
這就給了我過去的約會:
.Where(e => e.StartDateTimeBooking < today)
uj5u.com熱心網友回復:
由于日期在資料庫中包括時間,你需要在你的日期上有一個中間的過濾器:
假設今天是你的日期變數,并且代表一個午夜的日期(例如DateTime.Today):.Where(e => e.StartDateTimeBooking >= today && e.StartDateTimeBooking < today.AddDays(1)
這就創建了你應該需要的過濾器之間。 它是在午夜或之后,但在明天午夜之前(AddDays(1))。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/310090.html
標籤:
