ПРИМЕЧАНИЕ. Поскольку я сам являюсь голландцем, все даты представлены в голландском dd-MM-yyyy
формате в описании испытания и тестовых случаях.
Вызов:
Входные данные:
дата начала ; Дата окончания ; Цифра
Выходы:
все даты в диапазоне (включая обе стороны), которые содержат уникальных цифр в своей дате.
Пример:
Исходные данные: Дата начала: 12-11-1991
; Дата окончания: 02-02-1992
; Разряд:4
Выходы:
с ведущими 0 для дней / месяцев:
[20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 01-12-1991, 02-12-1991, 09-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 01-01-1992, 02-01-1992, 09-01-1992, 10-01-1992, 11-01-1992, 12-01-1992, 19-01-1992, 20-01-1992, 21-01-1992, 22-01-1992, 29-01-1992, 01-02-1992, 02-02-1992]
Без ведущих 0 для дней / месяцев:
[20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 3-12-1991, 4-12-1991, 5-12-1991, 6-12-1991, 7-12-1991, 8-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 3-1-1992, 4-1-1992, 5-1-1992, 6-1-1992, 7-1-1992, 8-1-1992, 10-1-1992, 13-1-1992, 14-1-1992, 15-1-1992, 16-1-1992, 17-1-1992, 18-1-1992, 20-1-1992, 23-1-1992, 24-1-1992, 25-1-1992, 26-1-1992, 27-1-1992, 28-1-1992, 31-1-1992]
Правила вызова:
- Даты ввода и вывода могут быть в любом разумном (date-) формате. Может быть в виде строки в любом
dMy
формате (включая необязательные разделители), список из трех целых чисел, родной объект Date для вашего языка и т. Д. Выходными данными может быть список / массив / поток, напечатанный в STDOUT, одиночная строка с разделителями и т. Д. - Вам разрешено включать или исключать первые 0 для дней / месяцев в ваших выходных данных. Пожалуйста, укажите, какой из двух вы используете в своем ответе , так как это приведет к различным результатам. Т.е.
1-1-1991
имеет 2 уникальные цифры, но01-01-1991
как 3 уникальные цифры. - Вам не нужно иметь дело с високосными годами и различиями григорианских и юлианских календарей. Можно предположить, что диапазоны дат, указанные в тестовых примерах, никогда не превысят 28 февраля / 1 марта в течение лет, кратных 4.
- Входная цифра гарантированно находится в диапазоне , поэтому работа с не определена (возврат пустого списка был бы наиболее разумным, но с ошибкой или неправильным результатом также хорошо; вы выиграли не нужно иметь дело с этим входом).
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте найти как можно более короткий ответ для «любого» языка программирования. - Стандартные правила применяются к вашему ответу с правилами ввода / вывода по умолчанию , поэтому вам разрешено использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода (например, TIO ).
- Кроме того, добавление объяснения для вашего ответа настоятельно рекомендуется.
Тестовые случаи:
Inputs: [12-11-1991, 02-02-1992], 4
Outputs with leading 0s: [20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 01-12-1991, 02-12-1991, 09-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 01-01-1992, 02-01-1992, 09-01-1992, 10-01-1992, 11-01-1992, 12-01-1992, 19-01-1992, 20-01-1992, 21-01-1992, 22-01-1992, 29-01-1992, 01-02-1992, 02-02-1992]
Outputs without leading 0s: [20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 3-12-1991, 4-12-1991, 5-12-1991, 6-12-1991, 7-12-1991, 8-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 3-1-1992, 4-1-1992, 5-1-1992, 6-1-1992, 7-1-1992, 8-1-1992, 10-1-1992, 13-1-1992, 14-1-1992, 15-1-1992, 16-1-1992, 17-1-1992, 18-1-1992, 20-1-1992, 23-1-1992, 24-1-1992, 25-1-1992, 26-1-1992, 27-1-1992, 28-1-1992, 31-1-1992]
Inputs: [19-09-2019, 30-09-2019], 5
Outputs (same with and without leading 0s): [23-09-2019, 24-09-2019, 25-09-2019, 26-09-2019, 27-09-2019, 28-09-2019, 30-09-2019]
Inputs: [19-09-2019, 30-09-2019], 8
Output (same with and without leading 0s): []
Inputs: [20-06-1749, 30-06-1749], 8
Outputs with leading 0s: [23-06-1749, 25-06-1749, 28-06-1749]
Outputs without leading 0s: []
Inputs: [10-12-1969, 12-01-1970], 6
Outputs (same with and without leading 0s): [30-12-1969]
Inputs: [10-12-1969, 12-01-1970], 5
Outputs with leading 0s: [10-12-1969, 13-12-1969, 14-12-1969, 15-12-1969, 17-12-1969, 18-12-1969, 20-12-1969, 23-12-1969, 24-12-1969, 25-12-1969, 27-12-1969, 28-12-1969, 31-12-1969, 02-01-1970, 03-01-1970, 04-01-1970, 05-01-1970, 06-01-1970, 08-01-1970, 12-01-1970]
Outputs without leading 0s: [10-12-1969, 13-12-1969, 14-12-1969, 15-12-1969, 17-12-1969, 18-12-1969, 20-12-1969, 23-12-1969, 24-12-1969, 25-12-1969, 27-12-1969, 28-12-1969, 31-12-1969, 2-1-1970, 3-1-1970, 4-1-1970, 5-1-1970, 6-1-1970, 8-1-1970, 12-1-1970]
Inputs: [11-11-1111, 11-11-1111], 1
Output (same with and without leading 0s): [11-11-1111]
YYYY-MM-DDThh:mm:ss.mmm +hh:mm
+, чч: мм - это смещение времени вашей локали от UTC.)Ответы:
Japt , 23 байта
Принимает ввод данных в виде временных меток Unix, выводит массив строк с форматированием и ведущими
0
символами в зависимости от вашей локали. В Japt v2 будет короче на 1 байт, но при преобразованииDate
объектов в строки возникает ошибка .Попытайся
источник
R , 81 байт
Попробуйте онлайн!
Использует родной формат даты R и имеет ведущие нули в день и месяц.
источник
Красный , 93 байта
Попробуйте онлайн!
Без ведущих 0 для дней / месяцев.
Жаль , что Красный преобразует внутри
09-10-2019
к9-Oct-2019
- вот почему мне нужно извлечь день / месяц / год в индивидуальном порядке .источник
-=+*<>?!~&
, поэтому пробелы (или(...)[...]"..."
) необходимы.Python 3.8 (предварительная версия) , 84 байта
-6 байт благодаря Gloweye
Безымянная функция, которая возвращает список строк (считая / включая ведущие нули), который принимает три аргумента:
s
, начало -datetime.date
объект;e
, То конец - этоdatetime.date
объект; иn
Количество дней -int
объект.Попробуйте онлайн!
Примечание. Поскольку функция принимает
datetime.date
объекты, я не учел код импорта для этого (и работал над импортомdatetime.timedelta
объекта, поскольку он косвенно доступен посредством вычитания этих входных объектов).источник
type(obj)
на 3 байта корочеobj.__class__
.__class__
и сделал быстрый комментарий. Всегда рад помочь.JavaScript (ES6), 91 байт
Принимает ввод как
(n)(end)(start)
, где даты ожидаются как метки времени Unix в миллисекундах. Возвращает разделенный пробелами список дат в форматеyyyy-mm-dd
.Ведущие 0 включены.
Попробуйте онлайн!
источник
PHP , 90 байт
Попробуйте онлайн!
Это с ведущими 0. Входные данные - это аргументы команды (
$argv
), а даты - метки времени Unix в днях (в основном, стандартные секунды / 86400), я использовал этот формат, поскольку нам не нужно время в этом вызове, и это позволило мне сыграть еще 1 байт. Держит добавление в день , чтобы начать , пока он не достигнет конца и печатает любые даты с$n
уникальными цифрами в нем, разделенных_
вYmd
формате.Также есть 89-байтовая альтернатива, которая печатает даты для вывода в том же формате, что и ввод (метки времени Unix в днях).
источник
Java (JDK) , 86 байт
Попробуйте онлайн!
Я решил использовать ведущие
0
с.кредиты
источник
datesUntil
для 103 байтов . ;) Хороший ответ. Я не вижу ничего, что можно было бы сыграть в гольф лично..plusDays(1)
и удалите,.forEach(System.out::println)
и это очень удачный ответ, потому что, как вы писали, даты могут быть возвращены как объекты-значения, так и потоки разрешены. ;-) Я понятия не имел, чтоdatesUntil
даже существует! Спасибо за это :-)Рубин
-rdate
, 54 байтаПринимает 2 объекта Date и число в качестве входных данных и возвращает список объектов Date в качестве выходных данных. Обрабатывает високосные годы и использует ведущие нули.
Попробуйте онлайн!
источник
C # (интерактивный компилятор Visual C #)
Без ведущих 0,
104, 103 байтаПопробуйте онлайн!
С ведущими 0,
106105 байтовПопробуйте онлайн!
источник
x =>$"
в обеих ваших версиях для -1. :)Котлин, 119 байт
Без ведущих 0, принимает два
java.time.LocalDate
и aLong
, возвращает aStream
изLocalDate
sисточник
it.toString()
с ,(it+"")
чтобы сэкономить несколько байт? Я знаю, что это возможно в некоторых других языках, таких как Java или .NET C #.