(Lưu ý: mặc dù có liên quan, thử thách này không phải là bản sao của thử thách này vì nó yêu cầu tự động xác định giây nhuận thay vì mã hóa thời gian của chúng và không phải là bản sao của thử thách này vì phần lớn khó khăn đến từ việc xác định thời gian mà không có bước nhảy vọt thứ hai , một cái gì đó mà hầu hết các API thời gian không làm theo mặc định. Như vậy, một giải pháp có thể trông khác với một giải pháp cho một trong những thách thức đó.)
Chúng ta sẽ đến cuối năm 2016, nhưng sẽ mất nhiều thời gian hơn mọi người mong đợi. Vì vậy, đây là một thách thức kỷ niệm thêm thứ hai của chúng tôi trong năm nay.
Xuất thời gian hiện tại trong UTC, dưới dạng giờ, phút, giây. (Ví dụ: các định dạng đầu ra hợp pháp cho giữa trưa sẽ bao gồm 12:00:00
và [12,0,0]
; định dạng không quá quan trọng ở đây.)
Tuy nhiên, có một điểm mấu chốt: chương trình của bạn phải xử lý các bước nhảy vọt một cách thích hợp, cả quá khứ và tương lai. Điều này có nghĩa là chương trình của bạn sẽ phải có được một danh sách các giây nhuận từ một số nguồn trực tuyến hoặc cập nhật / cập nhật tự động. Bạn có thể kết nối với Internet để có được điều này nếu bạn muốn. Tuy nhiên, bạn chỉ có thể kết nối với một URL trước thử thách này (tức là không tải xuống các phần của chương trình từ nơi khác) và bạn không được sử dụng kết nối để xác định thời gian hiện tại (cụ thể: chương trình của bạn phải hoạt động ngay cả khi có bất kỳ nỗ lực truy cập nào Internet trả về một trang dài tới 24 giờ).
Các API mặc định của hầu hết các hệ điều hành cho thời điểm hiện tại sẽ làm lệch thời gian xung quanh các giây nhuận để ẩn chúng khỏi các chương trình có thể bị nhầm lẫn. Như vậy, khó khăn chính của thử thách này là tìm ra một phương thức hoặc API để hoàn tác điều đó và tìm ra thời gian hiện tại chưa được sửa đổi thực sự trong UTC.
Về lý thuyết, chương trình của bạn phải hoàn toàn chính xác nếu nó chạy trên một máy tính cực kỳ nhanh và không được cố tình mất quá nhiều thời gian để chạy. (Tất nhiên, trong thực tế, chương trình của bạn sẽ chạy trên một máy tính không hoàn hảo và do đó có thể sẽ không chạy ngay lập tức. Bạn không phải lo lắng về việc làm mất hiệu lực kết quả này, nhưng không được phụ thuộc vào tính chính xác của chương trình. )
Chương trình của bạn phải hoạt động bất kể múi giờ hệ thống được đặt thành. (Tuy nhiên, nó có thể yêu cầu thông tin từ hệ điều hành hoặc môi trường về múi giờ nào đang được sử dụng và có thể cho rằng câu trả lời là chính xác.)
Là một môn đánh gôn , chương trình ngắn nhất sẽ thắng. Chúc may mắn!