- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, требуется помощь
Даны диапазоны разных дат, в диапазон могут входить даты с разных месяцев. (Это диапазон свободных дат, которые свободные в данный момент)
задача: найти диапазон свободных дат по указанному промежутку дат 2017-04-10 - 2017-04-13 или другой промежуток
Я ума не приложу как это сделать. Может подсказать?
Это НЕ задача в универе, это реальная задача :)
пример:
сравнивать.
дата - это число. можно перевести в секунды, если так проще понять
Если вначале отсортировать по первой дате, то упростится в разы.
Спасибо. Я раздуплился, я сделал проще:
WHERE (DATE(from) <= '2017-04-20' AND DATE(to) >= '2017-04-22')
таким образом оно выберет даты в свободном диапазоне который есть.
Я думаю что будет верно.
Как-то у вас не очень понятно задачка сформулирована в плане
Судя по вашему решению вам надо найти диапазон в таблице, в который попадает диапазон-параметр.
Тогда да, ваше решение верное, операции сравнения дат в БД поддерживаются.
сейчас задача когда в один диапазон может входить несколько диапазонов
есть какой-то пример реализации в этом контексте?
вариант 1
т.е. надо искать диапазон:
2017-08-01 по 2017-08-05
среди диапазонов:
2017-08-01 по 2017-08-02
2017-08-01 по 2017-08-03
2017-08-05 по 2017-08-05
2017-08-01 по 2017-08-30
2017-08-01 по 2017-08-20
вариант 2
т.е. надо искать диапазон:
2017-08-01 по 2017-08-05
среди диапазонов:
2017-08-01 по 2017-08-02
2017-08-01 по 2017-08-03
2017-08-05 по 2017-08-05
2017-08-01 по 2017-08-30
2017-08-01 по 2017-08-20
2017-08-20 по 2017-08-20
Синим цветом я выделил то что не правильно
Пробовать как-то в тупую перебрать, да? можно мозг поломать :)
Вы можете сформулировать задачки, используя термины из предметной области? Ну типа там расписание занятости номеров и даты туров или что там у вас? Потому что лично мне, по вашим текущим формулировкам -
Оосбенно с учётом примеров.
rtyug, мне кажется место не может быть свободно дважды, так как место одно.
Но у места может быть разрыв в 0 секунд, но уже в разных диапазона.
Например:
отель и сезоны (обычные диапазоны)
1 май - 100р
2 июнь - 200р
3 июль - 400р
4 август - 300р
Возьмем отдых: с 9 мая по 2 августа.
то в нашем примере у нас будет 4 диапазона.
по решению:
1 получаем количество дней которые мы должны отдохнуть DP(Дней Планово).
2 получаем все диапазоны с одного PR(места отдыха)которые нам подошли, (притом, что диапазоны у нас с первого числа указаны и по конец месяца, тогда вычиаем с первого и последнего ненужные нам дни)
2.1 складываем дни из диапазонов DF(дней свободно)
3 сравниваем дни
$Place_rest_array[] = PR;
}
ну и все полученные места пробегаемся