首页 文章

显示下一个开放日和小时

提问于
浏览
3

在我的申请中,我正在通过办公室的开放和关闭时间 . 像这样的例子

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

The code below only display the hours like above.

我的问题是,如果是周四,周五,周六或周日,我想显示该办公室将于周一下午02:30开放 . 如果是星期二,它将显示它将在星期三上午9点开放 .

How do I calculate to show the next open day and hour of the office

@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; }
}

1 回答

  • 0

    您可以 DictionaryDateTime 对象映射到 DayHours 对象,而不是 IEnumerable .

    这样,您可以使用 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...

相关问题