在C#中,将一个DateTime值与DateTimes列表中的任何值进行比较。

我有一个预约安排应用程序,在那里你设置了一个预约时间,当你设置了这个时间,我想检查并看看他们的预约是否与其他预约时间重叠,如果是这样,我想阻止他们安排预约。

public List<DateTime> AppointmentStartTimes = new List<DateTime>();
public List<DateTime> AppointmentEndTimes = new List<DateTime>();

我想让他们不能安排约会,如果开始时间在这些列表中的任何一个值之间,我如何将时间与两个列表中的值进行比较,谢谢?

解决方案:

与其使用两个列表,不如创建一个更简洁、更可扩展的方法。Appointment 类。

class Appointment
{
    public DateTime StartTime { get; set; }
    public DateTime EndTime { get; set; }

    public bool ConflictsWith(Appointment proposed)
    {
        return StartTime < proposed.EndTime && proposed.StartTime < EndTime;
    }
}

然后,你可以有一个单一的约会列表。

public List<Appointment> Appointments = new List<Appointment>();

而且你可以检查冲突,因为这样。

Appointment proposed = //...
bool conflicts = Appointments.Any(appointment => appointment.ConflictsWith(proposed));

给TA打赏
共{{data.count}}人
人已打赏
解决方案

findstr

2022-5-11 11:00:10

解决方案

在flutter中导航到另一个页面后如何获取数据?

2022-5-11 11:00:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索