Ответы пользователя по тегу Алгоритмы
  • Как сформировать пересекающиеся периоды?

    OKyJIucT
    @OKyJIucT
    Sunshine reggae
    Каждый диапазон разбить на массив с днями, потом перебирать первый массив и искать значение во втором. Если есть - создавать третий (между первыми двумя) и перенести значение туда, попутно удаляя значение элемента из обоих массивов.

    В конце собрать из каждого диапазона массив в исходном формате, используя первый и последний элемент.

    Функция для создания массива с датами из диапазона

    $from = new \DateTime('2014-01-01');
    $to = new \DateTime('2015-11-01');
     
    $period = new \DatePeriod($from, new \DateInterval('P1D'), $to);
     
    $arrayOfDates = array_map(
        function ($item) {
            return $item->format('Y-m-d');
        },
        iterator_to_array($period)
    );
    Ответ написан