如何使用 C# 获得一整天
本文关键字:一整天 何使用 | 更新日期: 2023-09-27 18:32:06
这是DateTime Picker代码的一部分.当有人从日期时间选择器中选择StartDate和EndDate时,它会进入unitHolidays。
在这里,我需要完整的假期。我需要考虑是否有人选择任何开始日期,但时间是 12:00:00 AM 到任何结束日期,时间是 12:00:00 AM(例如:查看完整假期)
全假日2013/9/19 12:00:00 AM 至 2013/9/20 12:00:00 AM
但是我的以下代码,它需要任何 12 小时的插槽都是假期。
foreach (UnitHolidays uh in unitHolidays)
{
for (DateTime dth = uh.StartDate; dth <= uh.EndDate; dth = dth.AddDays(1))
{
RadCalendarDay rcdHoliday = new RadCalendarDay();
rcdHoliday.Date = dth.Date;
rcdHoliday.IsDisabled = true;
rcdHoliday.IsSelectable = true;
rcdHoliday.ToolTip = "Holiday";
rcdHoliday.ItemStyle.BackColor = System.Drawing.Color.MediumOrchid;
rdpStDt.Calendar.SpecialDays.Add(rcdHoliday);
}
}
如果有人选择上午 12:00:00 到 12:00:00 AM,我需要,那么只有我需要把它当作假期。
如前所述,如下所示:
public class Holiday
{
public DateTime Start { get; set; }
public DateTime End { get; set; }
public List<Holiday> GetHolidays()
{
return new List<Holiday>() { new Holiday() {
Start = new DateTime(2013, 9, 19),
End = new DateTime(2013, 9, 20)
};
}
public bool IsHoliday(DateTime date)
{
return GetHolidays().Where(c => c.Start <= date && c.End >= date).Count() > 0;
}
}
但是,我认为这会更轻松,更容易:
public class Holiday
{
public List<DateTime> GetHolidays()
{
return new List<DateTime>() {
new DateTime(2013, 9, 19)
};
}
public bool IsHoliday(DateTime date)
{
return GetHolidays().Where(c => c.Date == date.Date).Count() > 0;
}
}
一
整天难道不会被描述为9/19/2013 12:00:00 AM
到9/19/2013 11:59:59 PM
或任何>=
到开始日期和<
结束日期的事情吗?您应该使用<
而不是<=
因为它将包括不是同一天的第二天。
你想要这样的东西:
private bool IsHoliday(DateTime startDate, DateTime endDate)
{
return DateTime.Now >= startDate && DateTime.Now < endDate;
}