मेरे पास मेरे ईवेंट पंजीकरण आवेदन के लिए एक डेटाबेस में कुछ घटनाएं हैं, जहां तिथियां निर्धारित की जा सकती हैं
public DateTime? DateStart { get; set; }
public DateTime? DateEnd { get; set; }
दोनों क्षेत्र अशक्त हैं, और मैं चाहता हूं कि अगर ईटर चल रहा हो 1) DateStart आज की तरह ही तारीख है, या 2) अब DateStart और DateEnd के बीच है
public async Task<List<EventInfo>> GetOngoingEventsAsync()
{
return await _db.EventInfos
.Where(i =>
i.Published &&
i.DateStart.Value.Date == DateTime.Now.Date ||
i.DateStart.Value.Date <= DateTime.Now.Date <= i.DateEnd.Value.Date)
.OrderBy(s => s.DateStart)
.ToListAsync();
}
हालांकि मेरा कोड ऊपर रिटर्न: Operator "<=" cannot be applied to operands of type "bool" and "DateTime"
उत्तर:
उत्तर № 1 के लिए 1त्रुटि के पीछे का कारण स्थिति का पहला हिस्सा था i.DateStart.Value.Date <= DateTime.Now.Date
मान्य किया जाएगा और में परिवर्तित किया जाएगा Boolean
। उसके बाद आप तुलना करने की कोशिश कर रहे थे Boolean
साथ में DateTime
इस तरह <= i.DateEnd.Value.Date
। तो यही कारण है कि मैं दो शर्तों को अलग करता हूं &&
ऑपरेटर।
(DateTime.Now.Date >= i.DateStart.Value.Date && DateTime.Now.Date <= i.DateEnd.Value.Date)
जवाब के लिए 0 № 2
यह आपके कोड का सही रूप होना चाहिए:
(DateTime.Now.Date >= i.DateStart.Value.Date && DateTime.Now.Date <= i.DateEnd.Value.Date)