gĀi'-¡ëžežfžg)}V[Y`2ô0Kθ4ÖUD2Qi\28X+ë<7%É31α}‹iY¬>0ëY1¾ǝDÅsD12‹i>1ë\1Dǝ¤>2}}ǝVY`UÐ3‹12*+>13*5÷s3‹Xα©т%D4÷®т÷©4÷®·()O7%6QYн13Q*#}YRεDgi0ì]'-ý
05AB1E не містить вбудованих даних для об'єктів Date або обчислень. Єдиний вбудований термін, який він має, - це рік / місяць / день / години / хвилини / секунди / мікросекунди.
Тож через це майже весь код, який ви бачите, - це ручні розрахунки, щоб перейти на наступний день, і обчислювати день тижня.
В основному походить від мого 05AB1E відповіді в той день , робота Countdown виклик (саме тому я редагував , що одна година назад , коли я натрапив на помилку ..)
Введення - це рядок у форматі dd-MM-yyyy
(але вихід у форматі yyyy-MM-dd
, оскільки це одне з правил виклику).
Спробуйте в Інтернеті або перевірте всі тестові випадки .
Пояснення:
gĀi # If an input is given:
'-¡ '# Split it by "-"
ë # Else:
že # Push today's day
žf # Push today's month
žg # Push today's year
) # Wrap them into a single list
}V # After the if-else statement: pop and store it in variable `Y`
[ # Start an infinite loop
Y`2ô0Kθ4ÖUD2Qi\28X+ë<7%É31α}‹iY¬>0ëY1¾ǝDÅsD12‹i>1ë\1Dǝ¤>2}}ǝV
# Go to the next day
# (see my linked The Work Day Countdown answer for an explanation)
Y`UÐ3‹12*+>13*5÷s3‹Xα©т%D4÷®т÷©4÷®·()O7%
# Calculate the day of the week (0 = Saturday, 1 = Sunday, ..., 6 = Friday)
# (see my linked The Work Day Countdown answer for an explanation)
6Q # Check if the day of the week is a Friday
Yн # Push the days of the current date
13Q # Check if it's the 13th
* # And if both checks are truthy:
# # Stop the infinite loop
}YR # After the infinite loop: push the resulting date-list, and reverse it
ε # Map each value to:
Dgi # If it's only a single digit:
0ì # Prepend a leading "0"
] # Close both the if-statement and map
'-ý '# Join the result by "-"
# (and output the result implicitly)
2013-9-13
вихід для нормального першого прикладу?