Đầu vào:
Một ngày (có chứa dd
, MM
và yyyy
). Một đối tượng ngày hoặc ba số nguyên riêng biệt cũng có giá trị làm đầu vào.
Đầu ra:
Mỗi phần (dd
, MM
và yyyy
) chuyển cá nhân và hơn làm tròn đến ngày hợp lệ gần nhất.
Ví dụ: (ở định dạng dd-MM-yyyy
):
21-10-2016
trở thành12-01-6102
Quy tắc thử thách:
- Chỉ
dd
,MM
,yyyy
là hợp lệ, nhưng trình tự, mà riêng-biểu tượng mà bạn sử dụng là sự lựa chọn của riêng bạn.
Vì vậy, đây là một số ví dụ định dạng hợp lệ :dd-MM-yyyy
;MM/dd/yyyy
;yyyy MM dd
;ddMMyyyy
, Vân vân.
Và đây là một số ví dụ định dạng không hợp lệ :dd MMM yyyy
;dd-MM-'yy
; Vân vân. - Bạn cũng có thể chọn chỉ nhập một đối tượng Ngày nếu ngôn ngữ của bạn hỗ trợ nó hoặc ba tham số nguyên riêng biệt, thay vì chuỗi đại diện cho một ngày.
- Vui lòng cho biết định dạng ngày bạn đã sử dụng! (Và đầu vào và đầu ra phải có cùng định dạng.) Nó cũng được phép xuất ra một đối tượng Date, miễn là nó có thể xử lý tất cả các trường hợp thử nghiệm và quy tắc thử thách bên dưới.
- Quá trình chuyển đổi Lịch Julian sang Gregorian bị bỏ qua cho thử thách này. Vì vậy,
1582
chỉ là một năm đảo ngược hợp lệ cho2851
.
Xem thông tin / mẹo về Thách thức cho tất cả các năm, tháng và ngày hợp lệ. - Vì bạn không thể có tháng hai như đảo ngược của bất kỳ tháng nào khác, bạn không phải lo lắng về năm nhuận.
Tất cả các năm, tháng và ngày đảo ngược:
- Năm luôn có thể được đảo ngược mà không có vấn đề, đạt từ 0001 (đảo ngược
1000
) đến 9999 (còn lại9999
). (Vì vậy,0000
không phải là một đầu vào hợp lệ và cũng không có trường hợp thử nghiệm nào cho nó.) - Các tháng duy nhất bạn sẽ đảo ngược là: Tháng một (đảo ngược từ tháng 10 /
10
); Tháng 10 (đảo ngược từ tháng 1 /01
); Tháng 11 (vẫn là tháng 11 /11
); và tháng 12 (đảo ngược so với mọi tháng khác /02
-09
,12
). - Những ngày duy nhất bạn sẽ đảo ngược là: 01 (đảo ngược từ
10
), 02 (đảo ngược từ20
), 03 (đảo ngược từ30
), 10 (đảo ngược từ01
), 11 (vẫn11
), 12 (đảo ngược từ21
), 13 (đảo ngược từ31
) , 20 (đảo ngược từ02
), 21 (đảo ngược từ12
), 22 (còn lại22
), 30 (đảo ngược từ03
hoặc giống như 31 cho tháng 11!), 31 (đảo ngược từ04
-09
/13
-19
/23
-29
).
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Các quy tắc chuẩn áp dụng cho câu trả lời của bạn, vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và trả về câu lệnh / đầu ra, các chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn.
- Ngoài ra, xin vui lòng thêm một lời giải thích nếu cần thiết.
Các trường hợp thử nghiệm ( dd-MM-yyyy
dưới định dạng):
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
bao quanh, với năm tăng dần.
10-10-2
đầu ra hợp lệ trong trường hợp thứ ba?
21-07-2016
được hoàn nguyên12-70-6102
được làm tròn thành12-12-6102
. Không chắc chắn làm thế nào bạn có được kết quả##-10-6107
..