c# - 显示下一个开放日期和时间

标签 c# razor

在我的申请中,我传递了办公室的开放和关闭时间。 像这样的例子

Monday    02:30PM  - 05:00PM
Tuesday   Closed
Wednesday 09:00AM  - 05:00PM
Thursday  Closed
Friday    Closed
Saturday  Closed
Sunday    Closed

办公室也可以每周开放一次,时间看起来会有所不同。

Monday    02:30PM  - 05:00PM
Tuesday   Closed
Wednesday Closed
Thursday  Closed
Friday    Closed
Saturday  Closed
Sunday    Closed

下面的代码只显示上面的时间。

我的问题是现在是星期四、星期五、星期六还是星期日,我想显示办公室将于星期一下午 2:30 开放。如果是星期二,它将显示它将在星期三上午 9 点开放。

我如何计算以显示办公室的下一个开放日期和时间

@foreach (var weekday in Model.OfficeHours.WeekdayHours)
{
    @weekday.DayName <br>
    @weekday.OpenTime.ToString("hh:mmtt")<br>
    @weekday.CloseTime.ToString("hh:mmtt")
}

public IEnumerable<DayHours> WeekdayHours { get; set; } 
public class DayHours
{
    public DayHours();

    public string DayName { get; set; }
    public DateTime DayDate { get; set; }
    public DateTime OpenTime { get; set; }
    public DateTime CloseTime { get; set; }
    public bool IsClosed { get; set; }
}

最佳答案

而不是 IEnumerable , 你可以 Dictionary到 map DateTime反对 DayHours对象。

这样,你可以用DateTime.AddDays()查看第二天并从 Dictionary 中检索它

@foreach (var weekday in Model.OfficeHours.WeekdayHours)
{
    @weekday.Key <br> // Formerly DayDate, now the key of the Dictionary
    @weekday.Value.OpenTime.ToString("hh:mmtt")<br>
    @weekday.Value.CloseTime.ToString("hh:mmtt")
}

public Dictionary<DateTime,DayHours> WeekdayHours { get; set; } 
public class DayHours
{
    public DayHours();

    public string DayName { get; set; }
    public DateTime OpenTime { get; set; }
    public DateTime CloseTime { get; set; }
    public bool IsClosed { get; set; }
}

你可以查看 isClosed然后显示 WeekDayHours[weekday.Key.AddDays(1)].Value...或者只是 weekday.Value...

关于c# - 显示下一个开放日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51408082/

相关文章:

c# - UWP 使用 GetBindingExpression 和 x :Bind

jquery - 如何获取 Ajax.BeginForm 和 OnSuccess 之间的事件?

c# - 为什么 `w("hi")` doesn' t 工作但 `this.w("hi")` 工作?

c# - 项目 visual studio 2010 中的文件列表

c# - Blob 引用的 BlobType 与 Blob 的 BlobType 不匹配?

c# - 将文本添加到单选按钮

javascript - MVC 在暂停四秒后重定向到另一个页面

c# - 如何在 MVC Razor 中显示 TimeSpan

c# - 带有 await 的异步 lambda 表达式返回任务?

c# - 面板滚动后,面板内的 DataGridView 跳转到列表的开头