【问题标题】:Show the next opening day and hours显示下一个营业日和营业时间
【发布时间】:2018-07-18 17:43:40
【问题描述】:

在我的申请中,我通过了办公室的营业时间和关闭时间。 像这样的例子

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

【问题讨论】:

  • 只是一个提示:DateTime 有一个DayOfWeek 属性。也许您可以使用它找到一周中的第二天? (即var nextWeekDay = Model.OfficeHours.WeekdayHours.Where(wh =&gt; wh.OpenTime.DayOfWeek == DateTime.Today.DayOfWeek + 1)(确保在DayOfWeek == 6时回绕)
  • 如果您只关心一天中的时间,而不是一年中的一天,请考虑使用TimeSpan

标签: c# razor


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2020-07-10
    • 1970-01-01
    • 2020-08-11
    • 2018-01-21
    相关资源
    最近更新 更多