gpt4 book ai didi

c# - 给定一个日期范围列表,我如何验证该列表中是否涵​​盖了日期范围内的所有日期?

转载 作者:行者123 更新时间:2023-12-01 17:26:51 26 4
gpt4 key购买 nike

我有一个日期范围列表。

05/01/2012 - 07/01/2012
07/02/2012 - 09/05/2012
01/01/2012 - 03/31/2012
08/01/2012 - 12/31/2012

现在的问题是验证给定的列表是否涵盖特定范围内的所有日期。例如,此列表涵盖 05/01/2012 - 12/31/2012 范围内的所有日期,但不包括 01/01/2012-12/31/2012,因为此列表不涵盖 4 月日期。假设是,

  1. 日期范围有效 - 开始日期 <= 结束日期。
  2. 日期范围可能会重叠,如上述第二个和第四个的情况。
  3. 列表未以任何方式排序。

到目前为止,我所做的是测试异常值,例如,

Finding the smallest start date and largest end date - If the start and/or end date of your test date range are less/greater than these dates respectively, test fails.

但是检查中间是否有任何错过的日期的最佳策略是什么?提前致谢!

最佳答案

最简单的策略是解析所有涉及的日期。 O(N)

按开始日期对日期进行排序。 O(N log N) 时间

将结束日期与下一个开始日期进行比较(忽略任何向后的结束日期)O(N)

如果下一个开始日期的一个结束日期超过一天,则有一个间隙。

关于c# - 给定一个日期范围列表,我如何验证该列表中是否涵​​盖了日期范围内的所有日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14203636/

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