Рассмотрим дату в формате YYYY-MM-DD
. Вы можете использовать джокер *
в конце строки даты. Например, 2016-07-2*
описывает все даты от 2016-07-20
до 2016-07-29
.
Теперь рассмотрим период, представленный начальной датой и конечной датой.
Алгоритм должен найти наименьший возможный список дат, представляющих период.
Давайте использовать пример. На следующий период:
- Дата начала:
2014-11-29
- Дата окончания:
2016-10-13
Алгоритм должен возвращать массив, содержащий следующий список дат:
2014-11-29
2014-11-30
2014-12-*
2015-*
2016-0*
2016-10-0*
2016-10-10
2016-10-11
2016-10-12
2016-10-13
Ответы:
PHP,
541343 байтаЯ хотел, чтобы алгоритм работал в первую очередь; но игра в гольф на самом деле была куда веселее, чем я ожидал (особенно просмотр поддерживаемых форматов даты и времени ).
Три основных действия сэкономили около 130 байтов; но 70 байтов от незначительных игр в гольф
(которые также сделали один из больших шагов устаревшим) несут массу удовольствия.
принимает входные данные из аргументов командной строки. Запустите
-nr
или протестируйте его онлайн .Примечания
Y-m-3*
дляY-m-30
; добавить 7 байтов для исправления: Вставить|$a==$t
после777600))
.+$p
на+!$p
.но я подожду немного, чтобы увидеть, если кто-то еще подчинится, прежде чем я испортил.
источник