[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Пример - Печать локаль-зависимой даты

Этот пример - упрощенная версия date(1). Он работает следующим
образом:
13   setlocale(3C) устанавливает категорию LC_TIME для локали,
указанной в переменной среды LANG.
14   time(2) возвращает число секунд, прошедших с первого января 1970
года.
15   localtime(3C) преобразует это число секунд в структуру tm и
возвращает ее адрес.
17   strftime(3C), используя структуру с указателем timeptr и локаль,
присвоенную LANG, помещает символы, соответствующие локаль-
представлению даты и времени ("%c"), в массив buf.
18   Распечатывается строка, содержащаяся в buf.
Программа запускается следующим образом:
$ LANG=DE
$ export LANG
$ lfate
Donnerstag den 10. August 1989 14:47 Uhr

Файл: ldate.c
                ПРИМЕР - ПЕЧАТЬ ЛОКАЛЬ-ЗАВИСИМОЙ ДАТЫ

 1 #include    <locale.h>
 2 #include    <stdio.h>
 3 #include    <time.h>
 4 #include    <unistd.h>
 5
 6 main()
 7 {
 8     char buf[50];
 9     time_t clock_val;
10     struct tm *timeptr;
11
12     /*  Initialize variables  */
13     setlocale(LC_TIME, "");
14     (void)time(&clock_val);
15     timeptr = localtime(&clock_val);
16
17     strftime(buf, 49, "%c", timeptr);
18     puts(buf);
19 }