• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja czasu w C/C++ niezależna od czasu systemowego

HackNation - ogólnopolski hackathon
+2 głosów
1,660 wizyt
pytanie zadane 28 sierpnia 2015 w C i C++ przez Benek Szeryf (93,330 p.)
Biblioteka standardowa <time.h> udostępnia funkcje gmtime() oraz localtime(), ale obie korzystają z ustawień systemowych. Czy jest możliwość otrzymania w C/C++ niezależnych wartości czasu? Chodzi mi o to, żeby zegar który tworzę, pokazywał takie same wartości dla użytkownika Szanghaju i Toronto, bazując na przykład na czasie uniwersalnym UT.

2 odpowiedzi

+3 głosów
odpowiedź 28 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)
Czas można równie dobrze pobierać z jakiegoś serwera - wtedy będziesz pewien, że na każdym komputerze masz tę samą wartość.
0 głosów
odpowiedź 28 sierpnia 2015 przez Benek Szeryf (93,330 p.)

Tak, oczywiście masz rację, ale właśnie program będzie działał na maszynie lokalnej, jak i na serwerze - taki dualizm. W każdym razie udało mi się dojść do pewnego rozwiązania. Otóż gmtime() nie tylko zależy od aktualnej godziny, ale także od sterfy czasowej - w sumie to dość oczywiste. Dla sterfy UT + 0 localtime() i gmtime() zwróci te same wartości, dla pozostałych stref wartości te będą różne. Czyli najważniejsze jest, by użytkownik miał ustawiony poprawnie czas systemowy i strefę. Wtedy nie będzie problemów.

Dodając jeszcze słowo komentarza, powyższa bibiloteka dostarcza funkcję time() zwracającą ilość sekund od 01.01.1970 r. Właśnie o niej myślałem, bo ( http://www.unixtimestamp.com/ ):

The unix time stamp is a way to track time as a running total of seconds. This count starts at the Unix Epoch on January 1st, 1970 at UTC. Therefore, the unix time stamp is merely the number of seconds between a particular date and the Unix Epoch. It should also be pointed out (thanks to the comments from visitors to this site) that this point in time technically does not change no matter where you are located on the globe. This is very useful to computer systems for tracking and sorting dated information in dynamic and distributed applications both online and client side.

Czyli ta funkcja nie zależy od czasu systemowego?

EDIT:

Tak, sprawdziłem, liczba sekund zależy od ustawienia zegara systemowego. Czyli nie ma wzorca czasu w komputerze w postaci niezależnego zegara, chociaż data i godzina w BIOS-ie jest podtrzymwana...

komentarz 28 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)

Tak, zależy. Jeśli będziesz miał na komputerze datę 1 stycznia 1970 roku, to ci wyjdzie raptem kilka tysięcy sekund smiley

komentarz 28 sierpnia 2015 przez Benek Szeryf (93,330 p.)
Właśnie sprawdziłem. Edytowałem wiadomość. Jestem zdziwiony, bo jak pisałem wyżej, czas jest w BIOS-ie podtrzymywany. Natomiast w pozostałych przypadkach komputer musi ufać, że człowiek dobrze ustawił zegar. Hm, zastanawiające czy tak na pewno powinno być.
komentarz 28 sierpnia 2015 przez Patrycjerz Mędrzec (192,320 p.)
I dlatego aplikacja powinna pobierać czas z zewnętrznego serwera (patrz wyżej).

Podobne pytania

0 głosów
2 odpowiedzi 439 wizyt
pytanie zadane 28 maja 2017 w C i C++ przez BinaryMan Stary wyjadacz (12,620 p.)
0 głosów
1 odpowiedź 896 wizyt
pytanie zadane 9 czerwca 2019 w C i C++ przez MegaaSoft Obywatel (1,430 p.)
0 głosów
1 odpowiedź 286 wizyt
pytanie zadane 17 kwietnia 2016 w C i C++ przez 0xf Dyskutant (8,180 p.)

93,626 zapytań

142,549 odpowiedzi

323,034 komentarzy

63,129 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1452p. - dia-Chann
  2. 1317p. - DziarnowskiJ
  3. 1292p. - Łukasz Piwowar
  4. 1291p. - CC PL
  5. 1254p. - raydeal
  6. 1219p. - robwarsz
  7. 1161p. - Maurycy W
  8. 1141p. - ssynowiec
  9. 1141p. - Adrian Wieprzkowicz
  10. 1134p. - Tomasz Bielak
  11. 1116p. - rucin93
  12. 1100p. - Mariusz Fornal
  13. 885p. - Dominik Łempicki (kapitan)
  14. 847p. - Grzegorz Aleksander Klementowski
  15. 838p. - Wojciech Malicki
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...