gpt4 book ai didi

c# - 将每日事件时间转换为 "Mon-Fri 10:00-10:30AM"格式

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:44:12 24 4
gpt4 key购买 nike

我有一个存储日常事件的表,例如“晨会”。这些事件在每周的一天或一天​​中的不同时间进行。我需要一种算法来生成“很好”的事件时间描述。目前,我正在使用这个数据结构:

public class DailyActivityTime
{
public int WeeklyActivityTimeId { get; set; }
public bool Sunday { get; set; }
public string SundayStartTime { get; set; }
public string SundayEndTime { get; set; }
public bool Monday { get; set; }
public string MondayStartTime { get; set; }
public string MondayEndTime { get; set; }
public bool Tuesday { get; set; }
public string TuesdayStartTime { get; set; }
public string TuesdayEndTime { get; set; }
public bool Wednesday { get; set; }
public string WednesdayStartTime { get; set; }
public string WednesdayEndTime { get; set; }
public bool Thursday { get; set; }
public string ThursdayStartTime { get; set; }
public string ThursdayEndTime { get; set; }
public bool Friday { get; set; }
public string FridayStartTime { get; set; }
public string FridayEndTime { get; set; }
public bool Saturday { get; set; }
public string SaturdayStartTime { get; set; }
public string SaturdayEndTime { get; set; }
public bool Biweekly { get; set; }
public string DisplayText { get; set; }
}

StartEnd 时间作为 TIME 数据类型持久保存到 SQL Server (2008 R2)(因此进入 C# 代码作为TimeSpan),bool 属性当然是 BIT。我想在 DailyActivityTime 类本身的 C# 中编写转换为描述的代码,在构造函数中或在 DisplayText 属性 getter 中。

例如,假设晨会事件发生如下:

Monday: 10:00-10:30AM  
Tuesday: 10:00-10:30AM
Wednesday: 10:00-10:30AM
Thursday: 10:00-10:30AM
Friday: 10:00-10:30AM
Saturday: 5:00-6:00PM
Sunday: 5:00-6:00PM

我需要将此示例显示为:

Mon-Fri 10:00-10:30 AM, Sat & Sun 5:00-6:00 PM

一些基本事实:

  1. 事件在任何给定的一天只能发生一次。即,晨会不能在星期二召开两次。
  2. 一周中两天以上发生的不按顺序发生的事件可以显示在逗号分隔的列表中,例如,Mon, Wed, Fri 1:00-1:30 PM.
  3. 标记为Biweekly 的事件将显示为“Every other...”并且每周不会发生超过一天,例如,每隔周四 3:00-3:下午 45 点
  4. 虽然我已经为这个实体创建了表和相关类,但如果有更好的解决方案,我完全愿意以不同的格式存储这些数据。

我很确定我可以通过为一周中的每一天分配一个整数序列然后比较时间来解决这个问题,但似乎可能有更好的算法,可能利用 TimeSpan 结构。有人有主意吗?

最佳答案

Time Period图书馆可能会帮助你解决这个问题

关于c# - 将每日事件时间转换为 "Mon-Fri 10:00-10:30AM"格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15950686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com