dongniaoli1822 2017-04-25 16:25
浏览 72

测试范围是否与另一个数字范围相交

I have 2 range of numbers:

  • $startTime to $endTime
  • $offerStartTime to $offerEndTime

Each of the above variables are integers.

I want to see if the range offerStartTime to offerEndTime falls in the range startTime and endTime.

For example, if the startTime and endTime range was: 10 to 20, then the following example ranges would return true:

  • offerStartTime: 5, offerEndTime: 11
  • offerStartTime: 5, offerEndTime: 100
  • offerStartTime: 10, offerEndTime: 15
  • offerStartTime: 10, offerEndTime: 100
  • offerStartTime: 12, offerEndTime: 15
  • offerStartTime: 19, offerEndTime: 100

The following would return false:

  • offerStartTime: 1, offerEndTime: 3
  • offerStartTime: 90, offerEndTime: 100
  • offerStartTime: 1, offerEndTime: 10
  • offerStartTime: 20, offerEndTime: 100

How can I do this? Would ideally like answers in PHP, but pseudo code would be fine.

  • 写回答

6条回答 默认 最新

  • douzi1991 2017-04-25 16:34
    关注

    Hope this will help you out, I have tried this with all your inputs and it is working fine..

    <?php
    
    ini_set('display_errors', 1);
    
    $startTime=10;
    $endTime=20;
    
    $startOffset=100;
    $endOffset=110;
    
    $range=range($startTime,$endTime);//getting range of time
    
    $offsetRange=range($startOffset,$endOffset);//getting range of offset
    
    
    $set=array_intersect($range, $offsetRange);//getting the intersection
    
    if(is_array($set) && count($set)>0);
    {
        if(count($set)>1)
        {
            echo "Matched";
        }
        //added this to prevent this case offerStartTime: 1, offerEndTime: 10, 
        //ranges intersection is the endTime
        elseif(count($set)==1)
        {
            if($set[0]!=$startTime)
            {
                echo "Matched";
            }
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端