Provided by: manpages-pl-dev_20060617-1_all bug

NAZWA

       asctime,  ctime,  gmtime, localtime, mktime - konwersja daty i czasu do
       postaci czasu rozłożonego lub ASCII

SKŁADNIA

       #include <time.h>

       char *asctime(const struct tm *tm);
       char *asctime_r(const struct tm *tm, char *buf);

       char *ctime(const time_t *timep);
       char *ctime_r(const time_t *timep, char *buf);

       struct tm *gmtime(const time_t *timep);
       struct tm *gmtime_r(const time_t *timep, struct tm *result);

       struct tm *localtime(const time_t *timep);
       struct tm *localtime_r(const time_t *timep, struct tm *result);

       time_t mktime(struct tm *tm);

OPIS

       Funkcje ctime(), gmtime()  oraz  localtime()  przyjmują  argument  typu
       time_t,   reprezentujący   czas   kalendarzowy.   Zinterpretowany  jako
       bezwzględna wartość czasu, określa on ilość sekund, jakie  upłynęły  od
       godziny  00:00:00  1  stycznia  1970  czasu  Coordinated Universal Time
       (UTC).

       Funkcje asctime() oraz mktime() przyjmują jako argument czas rozłożony,
       który jest reprezentacją podzieloną na rok, miesiąc, dzień itd.

       Czas  rozłożony  jest  przechowywany  w  strukturze tm, zdefiniowanej w
       <time.h> następująco:

              struct tm {
                      int     tm_sec;         /* sekundy */
                      int     tm_min;         /* minuty */
                      int     tm_hour;        /* godziny */
                      int     tm_mday;        /* dzień miesiąca */
                      int     tm_mon;         /* miesiąc */
                      int     tm_year;        /* rok */
                      int     tm_wday;        /* dzień tygodnia */
                      int     tm_yday;        /* dzień roku */
                      int     tm_isdst;       /* sezonowa zmiana czasu */
              };

       Elementy struktury tm to:

       tm_sec Liczba sekund po pełnej minucie, normalnie z zakresu od 0 do 59,
              ale  może wynosić nawet do 61, aby umożliwić sekundy przestępne.

       tm_min Liczba minut po pełnej godzinie, z zakresu od 0 do 59.

       tm_hour
              Liczba godzin po północy, z zakresu od 0 do 23.

       tm_mday
              Dzień tygodnia, z zakresu od 1 do 31.

       tm_mon Liczba miesięcy od stycznia, z zakresu od 0 do 11.

       tm_year
              Liczba lat od 1900.

       tm_wday
              Liczba dni od niedzieli, z zakresu od 0 do 6.

       tm_yday
              Liczba dni od 1 stycznia, z zakresu od 0 do 365.

       tm_isdst
              Znacznik,  który  wskazuje,  czy  dla  podanego  czasu   została
              przeprowadzona  zmiana czasu zimowy/letni. Jeśli wartość ta jest
              dodatnia, to zmiana czasu została przeprowadzona,  jeśli  wynosi
              zero  - zmiany nie przeprowadzono, a jeśli jest ujemna - oznacza
              to, że informacja dotycząca zmiany czasu nie jest dostępna.

       Wywołanie ctime(t) jest równoważne asctime(localtime(t)).  Przekształca
       ono czas kalendarzowy t na łańcuch o postaci

              "śro sty 30 21:49:08 1993\n"

       Skróty  dni  tygodnia  to  `nie',  `pon',  `wto', `śro', `czw', `pią' i
       `sob'.  Skróty miesięcy to `sty', `lut', `mar',  `kwi',  `maj',  `cze',
       `lip',  `sie',  `wrz',  `paź', `lis' i `gru'. Zwracany jest wskaźnik do
       statycznego łańcucha, który  to  łańcuch  może  zostać  nadpisany  przy
       kolejnym  wywołaniu  dowolnej  funkcji  daty  i czasu. Funkcja zapisuje
       również informacje na temat aktualnej strefy  czasowej  do  zewnętrznej
       zmiennej  tzname  (patrz tzset(3)).  Wielowejściowa wersja tej funkcji,
       ctime_r(),  robi  to  samo,  ale  zapisuje  łańcuch  w  podanym   przez
       użytkownika  buforze  o  długości co najmniej 26. Nie musi ona ustawiać
       tzname.

       Funkcja  gmtime()  przekształca  czas  kalendarzowy   timep   na   czas
       rozłożony,  wyrażony  w  Coordinated  Universal  Time  (UTC).  Może ona
       zwrócić wartość NULL, jeśli  rok  nie  daje  się  zapisać  jako  liczba
       całkowita.  Zwracany  jest  wskaźnik  do statycznej struktury, która to
       struktura  może  zostać  nadpisana  przy  kolejnym  wywołaniu  dowolnej
       funkcji  daty  i  czasu.  Funkcja gmtime_r() robi to samo, ale zapisuje
       dane do struktury podanej przez  użytkownika.  Nie  musi  ona  ustawiać
       tzname.

       Funkcja  localtime()  przekształca  czas  kalendarzowy  timep  na  czas
       rozłożony,  wyrażony  względem  wybranej   przez   użytkownika   strefy
       czasowej.  Funkcja działa tak, jakby wywoływała tzset(3) i wpisywała do
       zewnętrznej  zmiennej  tzname  informacje  na  temat  aktualnej  strefy
       czasowej,  do  timezone  -  różnicę  w  sekundach  pomiędzy Coordinated
       Universal Time (UTC) a lokalnym czasem standardowym, a  do  daylight  -
       wartość niezerową jeśli przez jakąś część roku obowiązuje inny czas niż
       podany (zimowy/letni).  Zwracany jest wskaźnik do statycznej struktury,
       która  to  struktura  może  zostać  nadpisana  przy  kolejnym wywołaniu
       dowolnej funkcji daty i czasu.  Funkcja localtime_r() robi to samo, ale
       zapisuje  dane  do  struktury  podanej  przez użytkownika. Nie musi ona
       ustawiać tzname.

       Funkcja asctime() przekształca czas rozłożony tm na łańcuch tego samego
       formatu,  co  ctime().  Zwracany jest wskaźnik do statycznego łańcucha,
       który to łańcuch może zostać nadpisany przy kolejnym wywołaniu dowolnej
       funkcji  daty  i czasu.  Funkcja asctime_r() robi to samo, ale zapisuje
       łańcuch w podanym przez użytkownika buforze o długości co najmniej  26.

       Funkcja  mktime()  przekształca strukturę czasu rozłożonego, wyrażoną w
       czasie  lokalnym,  na  czas  kalendarzowy.  Funkcja  ignoruje  wartości
       elementów  tm_wday  i tm_yday i oblicza je ponownie na podstawie innych
       informacji ze struktury czasu  rozłożonego.  Jeśli  elementy  struktury
       mają   wartości  spoza  zakresu  wartości  dopuszczalnych,  to  zostana
       znormalizowane  (w  taki  sposób,  że  np.  40  października   zostanie
       zamieniony  na  9  listopada).   Wywołanie  mktime()  zapisuje  również
       informacje na temat aktualnej strefy czasowej do  zewnętrznej  zmiennej
       tzname.  Jeśli podany czas rozłożony nie może zostać przedstawiony jako
       czas kalendarzowy (liczba sekund od początku  epoki),  mktime()  zwraca
       wartość (time_t)(-1) i nie zmienia wartości elementów tm_wday i tm_yday
       struktury czasu rozłożonego.

WARTOŚĆ ZWRACANA

       Każda z tych funkcji zwraca opisaną powyżej  wartość  lub  NULL  (-1  w
       przypadku mktime()) w razie wystąpienia błędu.

UWAGI

       Następujące  cztery  funkcje acstime(), ctime(), gmtime() i localtime()
       zwracają wskaźnik do statycznych danych  i  w  związku  z  tym  nie  są
       przystosowane  do  wielowątkowości.   Wielowątkowe  wersje acstime_r(),
       ctime_r(), gmtime_r() i localtime_r() są wymienione w SUSv2 i  dostępne
       począwszy od libc 5.2.5.

       Wersja struktury tm zawarta w glibc posiada dodatkowe pola

              long tm_gmtoff;           /* Sekundy na wschód od UTC */
              const char *tm_tm_zone;   /* Skrót strefy czasowej */

       zdefiniowane, gdy _BSD_SOURCE jest ustawione przed włączeniem <time.h>.
       Jest to rozszerzenie BSD, obecnie w 4.3BSD-Reno.

ZGODNE Z

       SVID 3, POSIX, BSD 4.3, ISO 9899

ZOBACZ TAKŻE

       date(1), gettimeofday(2),  newctime(3),  time(2),  utime(2),  clock(3),
       difftime(3), strftime(3), strptime(3), tzset(3)

                                  2001-12-13                          CTIME(3)