Вхід:
А Дата (у якому dd
, MM
і yyyy
). Об'єкт дати або три окремі цілі числа також дійсні як вхідні дані.
Вихід:
Кожна частина ( dd
, MM
а yyyy
) індивідуально повернувся і чим округлені до найближчої дійсної дати.
Наприклад (у форматі dd-MM-yyyy
):
21-10-2016
стає12-01-6102
Правила виклику:
- Тільки
dd
,MM
,yyyy
дійсно, але порядок і які окремі-символи , які ви використовуєте ваш власний вибір.
Так ось деякі дійсні приклади формату:dd-MM-yyyy
;MM/dd/yyyy
;yyyy MM dd
;ddMMyyyy
І т.д.
І це лише деякі приклади неприпустимого формату:dd MMM yyyy
;dd-MM-'yy
; тощо. - Ви також можете просто ввести об'єкт Date, якщо ваша мова підтримує його або три окремі цілі параметри, а не рядок, що представляє дату.
- Будь ласка, вкажіть, який формат дати ви використовували! (І вхід, і вихід повинні бути в одному форматі.) Також дозволено виводити об'єкт Date, якщо він може обробляти всі тестові випадки та правило виклику нижче.
- Перехід Юліанського до Григоріанського календаря для цього виклику ігнорується. Так що
1582
це дійсно зворотний рік для2851
.
Перегляньте інформацію / поради щодо викликів за всі дійсні роки, місяці та дні. - Оскільки лютий не може бути відміненим від будь-якого іншого місяця, вам не доведеться турбуватися про високосні роки.
Усі перевернуті роки, місяці та дні:
- Рік завжди можна змінити без проблем, досягнувши від 0001 (перевернутого
1000
) до 9999 (залишається9999
). (Отже0000
, це неправдивий ввід, і для нього також немає тестових випадків.) - Єдині місяці, які ви змінили, це: січень (відмінено від жовтня /
10
); Жовтень (перевернуто з січня /01
); Листопад (залишається листопад /11
); і грудень (зворотно від кожного другого місяця /02
-09
,12
). - Єдині дні, які ви скасували, це: 01 (відмінено від
10
), 02 (відмінено від20
), 03 (відмінено від30
), 10 (відмінено від01
), 11 (залишається11
), 12 (відмінено від21
), 13 (відмінено від31
) , 20 (перевернуте з02
), 21 (відмінено від12
), 22 (залишається22
), 30 (відмінено від03
або того самого, як 31 листопада!), 31 (відмінено від04
-09
/13
-19
/23
-29
).
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам коду-гольфу відштовхувати вас від публікації відповідей з не кодовими гольф-мовами. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Стандартні правила застосовуються до вашої відповіді, тому вам дозволяється використовувати STDIN / STDOUT, функції / метод із відповідними параметрами та повернення тверджень / виходів, повних програм. Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також, будь ласка, додайте пояснення, якщо це необхідно.
Тестові приклади ( dd-MM-yyyy
у форматі):
21-07-2016 -> 12-12-6102
12-11-1991 -> 21-11-1991
01-01-2000 -> 10-10-0002
27-08-1875 -> 31-12-5781
18-12-2010 -> 31-12-0102
13-01-1981 -> 31-10-1891
04-11-1671 -> 30-11-1761 // Semi-tricky case, since November has 30 days
28-11-2036 -> 30-11-6302 // Semi-tricky case, since November has 30 days
14-06-1855 -> 31-12-5581
30-10-9999 -> 03-01-9999
01-01-2851 -> 10-10-1582
70
року.
10-10-2
дійсний вихід у третьому випадку?
21-07-2016
повертається до12-70-6102
якого округляється12-12-6102
. Не впевнений, як ви отримаєте результат##-10-6107
..