有关检查多个日期之间记录的最佳实践的建议

发布于 2024-10-15 09:25:36 字数 228 浏览 5 评论 0原文

我正在寻找最有效的伪代码,以便实现以下条件:

  • 我有一个“事件”,它有开始日期和结束日期(S1,S2)
  • 我试图找出这种情况是否发生在特定时间范围内(D1、D2)
  • 如果事件仅持续一天,则不会有结束日期
  • 我只想在查询中出现该事件一次。

如果有人能够帮助处理此类查询背后的伪代码,我将不胜感激。

它用于 LINQ 查询中。

I'm looking to find out the most efficient pseudo-code in order to achieve the following conditions:

  • I have an "event" which has a start and an end date (S1, S2)
  • I am try to find out if this even occurs within a specific time-frame (D1, D2)
  • If the event only lasts for one day, it will not have an end date
  • I only want one occurrence of the event in the query.

If anybody is able to assist with tbe psuedo code behind such a query, I'd be grateful.

It's for use within a LINQ query.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笑饮青盏花 2024-10-22 09:25:36

如果将 (S1, S2) 定义为 (S1, S2?? S1),则

在以下情况下将满足条件:

  S2 >= D1 && D2 >= S1




        S1     S2
        |------|  
D1                     D2
|-----------------------|

            S1                  S2
            |-------------------|  
    D1                     D2
    |-----------------------|

    S1                  S2
    |-------------------|  
              D1                       D2
              |-----------------------|


    S1                        S2
    |-------------------------|  
              D1      D2
              |-------|

但以下条件将不满足:

        S1                  S2
        |-------------------|  
D1  D2
|----|

S1   S2
|-----|  
          D1                       D2
          |-----------------------|

If you define (S1, S2) as (S1, S2?? S1) then

condition will be met if:

  S2 >= D1 && D2 >= S1




        S1     S2
        |------|  
D1                     D2
|-----------------------|

            S1                  S2
            |-------------------|  
    D1                     D2
    |-----------------------|

    S1                  S2
    |-------------------|  
              D1                       D2
              |-----------------------|


    S1                        S2
    |-------------------------|  
              D1      D2
              |-------|

But the condition will not be met for these:

        S1                  S2
        |-------------------|  
D1  D2
|----|

S1   S2
|-----|  
          D1                       D2
          |-----------------------|
不喜欢何必死缠烂打 2024-10-22 09:25:36

要检查事件是否超过特定时间范围,请使用

Event.Start < TimeFrame.End && (Event.End == null) ? Event.Start.AddDays(1) : Event.End > TimeFrame.Start

To check if the event over laps a specific time frame use

Event.Start < TimeFrame.End && (Event.End == null) ? Event.Start.AddDays(1) : Event.End > TimeFrame.Start
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文