(Uwaga: pomimo tego, że jest to powiązane, to wyzwanie nie jest duplikatem tego, ponieważ wymaga automatycznego określenia sekund przestępnych, a nie zakodowania ich czasów i nie jest duplikatem tego, ponieważ większość trudności wynika z określenia czasu bez drugiego skoku , coś, czego większość interfejsów API nie robi domyślnie. W związku z tym rozwiązanie może wyglądać inaczej niż rozwiązanie któregoś z tych wyzwań).
Zbliżamy się do końca 2016 roku, ale potrwa to nieco dłużej, niż większość ludzi się spodziewa. Oto wyzwanie świętowania naszej dodatkowej sekundy w tym roku.
Podaj aktualny czas w UTC, jako godziny, minuty, sekundy. (Na przykład prawidłowe formaty wyjściowe na południe powinny zawierać 12:00:00
i [12,0,0]
; formatowanie nie jest tutaj niezwykle ważne).
Jest jednak pewien zwrot: twój program musi odpowiednio obsługiwać sekundy przestępne , zarówno z przeszłości, jak i przyszłości. Oznacza to, że Twój program będzie musiał uzyskać listę sekund przestępnych z niektórych źródeł online lub automatycznie aktualizowanych / aktualizowanych. Jeśli chcesz, możesz połączyć się z Internetem. Możesz jednak połączyć się tylko z adresem URL, który wyprzedza to wyzwanie (tj. Nie pobierać części programu z innego miejsca) i nie możesz używać połączenia do określenia aktualnego czasu (w szczególności: Twój program musi działać, nawet jeśli jakakolwiek próba dostępu Internet zwraca stronę, która jest do 24 godzin nieaktualna).
Domyślne interfejsy API większości systemów operacyjnych na bieżący czas będą przechylać czas około sekund przestępnych, aby ukryć je przed programami, które w innym przypadku mogłyby zostać pomylone. W związku z tym główną trudnością tego wyzwania jest znalezienie metody lub interfejsu API w celu cofnięcia tego i obliczenia prawdziwego niezmodyfikowanego bieżącego czasu w UTC.
Teoretycznie twój program powinien być idealnie dokładny, jeśli działał na nieskończenie szybkim komputerze i nie mógł celowo działać dłużej niż zero czasu. (Oczywiście w praktyce Twój program będzie działał na niedoskonałym komputerze, a więc prawdopodobnie nie uruchomi się natychmiast. Nie musisz się martwić o unieważnienie wyników, ale nie możesz polegać na nim pod względem poprawności programu. )
Twój program musi działać niezależnie od strefy czasowej, na którą ustawiony jest zegar systemowy. (Może jednak zażądać od systemu operacyjnego lub środowiska informacji o używanej strefie czasowej i może założyć, że odpowiedź jest poprawna).
Jak golf-golfwygrywa najkrótszy program. Powodzenia!