(Примітка. Хоча цей виклик не є дублікатом цього, оскільки він вимагає автоматичного визначення секундних стрибків, а не жорсткого кодування їх часу, і не є дублікатом цього, оскільки більша частина труднощів пов'язана з визначенням часу без стрибків другого перекосу. , те, що більшість API часу не роблять за замовчуванням. Як таке, рішення, ймовірно, виглядає відмінним від рішення для будь-якого з цих викликів.)
Ми підходимо до кінця 2016 року, але це займе трохи більше часу, ніж очікує більшість людей. Тож ось виклик святкувати нашу додаткову секунду цього року.
Виведіть поточний час у UTC, як години, хвилини, секунди. (Наприклад, законні вихідні формати для полудня включатимуть 12:00:00
і [12,0,0]
; форматування тут не має великого значення.)
Однак є поворот: ваша програма повинна обробляти високосні секунди належним чином, як минулі, так і майбутні. Це означає, що вашій програмі доведеться отримати список високосних секунд з якогось онлайн-джерела або автоматично оновленого / оновленого джерела. Ви можете підключитися до Інтернету, щоб отримати це, якщо бажаєте. Однак ви можете підключитися лише до URL-адреси, яка передує цьому виклику (тобто не завантажуйте частини програми з іншого місця), і ви не можете використовувати з'єднання для визначення поточного часу (зокрема: ваша програма повинна функціонувати навіть у разі будь-якої спроби доступу Інтернет повертає сторінку, яка до 24 годин застаріла).
Більшість API за замовчуванням для поточного часу API для операційних систем перекосують час у високосні секунди, щоб сховати їх від програм, які в іншому випадку можуть бути заплутані. Отже, головна складність цього завдання полягає у пошуку методу чи API, щоб скасувати це та відпрацювати справжній незмінений поточний час у UTC.
Теоретично ваша програма повинна бути абсолютно точною, якщо вона працювала на нескінченно швидкому комп’ютері і не повинна навмисно забирати більше ніж нульовий час для запуску. (Звичайно, на практиці ваша програма буде працювати на недосконалому комп'ютері, і тому, ймовірно, не запуститься миттєво. Вам не доведеться турбуватися про те, що результати буде визнано недійсним, але це не повинно залежати від правильності вашої програми. )
Ваша програма повинна функціонувати незалежно від того, для якого часового поясу встановлено системний годинник. (Однак він може вимагати отримання інформації від операційної системи або оточення щодо того, який часовий пояс використовується, і може вважати, що відповідь точна.)
Як код-гольф, виграє найкоротша програма. Удачі!