(Catatan: meskipun terkait, tantangan ini bukan duplikat dari yang satu ini karena membutuhkan menentukan lompatan detik secara otomatis daripada meng-hardcoding waktu mereka, dan bukan duplikat dari yang ini karena sebagian besar kesulitan berasal dari menentukan waktu tanpa melompati skewing kedua , sesuatu yang sebagian besar waktu API tidak lakukan secara default. Dengan demikian, sebuah solusi cenderung terlihat berbeda dari solusi untuk salah satu dari tantangan tersebut.)
Kami akan tiba di akhir 2016, tetapi akan memakan waktu sedikit lebih lama dari yang diperkirakan kebanyakan orang. Jadi, inilah tantangan untuk merayakan detik tambahan kami tahun ini.
Keluarkan waktu saat ini dalam UTC, seperti jam, menit, detik. (Misalnya, format output yang sah untuk tengah hari akan mencakup 12:00:00
dan [12,0,0]
; format tidak penting secara signifikan di sini.)
Namun, ada twist: program Anda harus menangani detik kabisat tepat, baik masa lalu dan masa depan. Ini berarti bahwa program Anda harus memperoleh daftar detik kabisat dari beberapa sumber daring atau yang diperbarui secara otomatis. Anda dapat terhubung ke Internet untuk mendapatkan ini jika Anda mau. Namun, Anda hanya dapat terhubung ke URL yang mendahului tantangan ini (mis. Tidak ada pengunduhan bagian dari program Anda dari tempat lain), dan Anda tidak boleh menggunakan koneksi untuk menentukan waktu saat ini (khususnya: program Anda harus berfungsi bahkan jika ada upaya untuk mengakses Internet mengembalikan halaman yang basi hingga 24 jam).
API default sebagian besar sistem operasi untuk waktu saat ini akan membelokkan waktu sekitar detik kabisat untuk menyembunyikannya dari program yang mungkin membingungkan. Dengan demikian, kesulitan utama dari tantangan ini adalah menemukan metode atau API untuk membatalkannya, dan menghitung waktu saat ini yang belum dimodifikasi di UTC.
Secara teori, program Anda harus benar-benar akurat jika dijalankan pada komputer yang sangat cepat, dan tidak boleh sengaja mengambil lebih dari nol waktu untuk berjalan. (Tentu saja, dalam praktiknya, program Anda akan berjalan pada komputer yang tidak sempurna, dan karenanya mungkin tidak akan berjalan secara instan. Anda tidak perlu khawatir tentang ini akan membatalkan hasil, tetapi tidak harus bergantung padanya untuk kebenaran program Anda. )
Program Anda harus berfungsi terlepas dari zona waktu mana jam sistem diatur. (Namun, dapat meminta informasi dari sistem operasi atau lingkungan tentang zona waktu apa yang digunakan, dan dapat berasumsi bahwa balasannya akurat.)
Sebagai golf kode , program terpendek menang. Semoga berhasil!