русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции по работе с датой и временем.

Функция приостановки времени на заданный интервал

Функция delay предназначена для приостановки времени на заданный интервал

времени (в миллисекундах)

#include <dos.h>

void delay(unsigned);

Функция получения системного времени

Функция time предназначена для получения системного времени (в сек с 00.00.00 01 янв 1970 г)

#include <time.h>

time_t time(time_t*);

(time_t – тип данных, определённый в файле time.h оператором typedef long time_t)

аргумент – указатель, которому будет присвоено значение. При нулевом указателе NULL значение не присваивается.

Функция определения разницы во времени между двумя событиями.

Функция difftime Вычисляет разницу во времени между двумя событиями.

Синтаксис #include<time.h>

double difftime(time_t time2, time_t time1);

Прототип в time.h

Примечания Вычисляет время в секундах, прошедшее от time1 до time2.

Значение Типа double.

Переносимость Эта функция доступна в системах UNIX и опреде-

лена в ANSI C.

См. также asctime, ctime, daylight(глобальная переменная), gmtime, localtime, time, timezone(глобальная переменная)

Пример #include <time.h>

#include <stdio.h>

#include <dos.h>

#include <conio.h>

int main(void)

{ time_t first, second;

clrscr();

first = time(NULL); /* системное время */

delay(2000); /* ожидает 2 секунды */

second = time(NULL);

printf("The difference is: %f seconds\n",

difftime(second,first));

getch();

}

Функция помещения текущего времени в структуру timeb.

Функция ftime помещает текущее время в структуру timeb.

Синтаксис #include <sys\timeb.h>

void ftime(struct timeb *buf);

Прототип в sys\timeb.h

Примечания Определяет текущее время и заполняет поля труктуры timeb, указываемой посредством buf. timeb содержит 4 поля: time, millitm, timezone

и dstflag:

struct timeb {

long time;

short millitm;

short timezone;

short dstflag;

};

- time - время в секундах с 00:00:00 1 января 1970 года по Гринвичу (GMT).

- millitm - миллисекунды.

- timezone - разница в минутах между GMT и местным временем; возрастает в западном направлении. ftime получает это поле из глобальной

переменной timezone, которая устанавливается tzset.

- dstflag используется для указания необходимости учета летнего времени.

Внимание !!! Функция ftime вызывает tzset. Поэтому нет необходимости вызывать tzset явно, когда Вы используете ftime.

Значение Нет. Переносимость Эта функция доступна в системах UNIX System 5.

См. также asctime, ctime, gmtime, localtime, stime, time, Tzset

DOS имеет специальную область памяти, называемую окружением (environment), в которой хранится набор строк символов, которые могут использоваться программами (например, о режиме работы программы , где искать временные файлы и т.д.)

Пример #include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <sys\timeb.h>

/* стандартное тихоокеанское время

с учетом летнего времени */

char *tzstr = "TZ=PST8PDT";

main(void)

{ struct timeb t;

putenv(tzstr);

tzset();

ftime(&t);

printf("Seconds since 1/1/1970 GMT: %ld\n", t.time);

printf("Thousandths of a second: %d\n", t.millltm);

printf("Difference between local time and GMT: %d\n", t.timezone);

printf("Daylight savings in effect (1) not (0): %d\n", t.dstflag);

}

Функция определения времени процессора.

Функция clock определяет время процессора.

Синтаксис #include<time.h>

clock_t clock(void);

Прототип в time.h

Примечания Может быть использована для определения временного интервала между двумя событиями. Для определения времени в секундах, значение, возвращаемое clock, следует разделить на значение макро CLK_TCK.

Значение Возвращает время процессора, прошедшее с начала

работы программы. Если это значение недоступно или не может быть представлено, будет возвращено значение -1.

Переносимость Эта функция совместима с ANSI C.

См. также time

Пример #include <time.h>

#include <stdio.h>

#include <dos.h>

main(void)

{

clock_t start, end;

start = clock();

delay(2000);

end = clock();

printf("The time was: %f\n", (end - start) / CLK_TCK);

}

Функция преобразования даты и времени в символьную строку.

Функция ctime Преобразует дату и время в строку.

Синтаксис #include<time.h>

char *ctime(const time_t *time);

Прототип в time.h

Примечания Преобразует значение, указываемое time (в виде,

возвращаемом функцией time), в 26-символьную строку в следующем форме, завершенной символом новой строки и нуль-символом:

Mon Nov 21 11:31:54 1983\n\0

Все поля имеют постоянную ширину. Установите глобальную переменную timezone в значение разности в секундах между GMT (гринвичское время) и местным временем (для PST - тихоокеанского поясного времени - timezone = 8

* 60 * 60). Глобальная переменная daylight ненулевая, если и только если должен применяться стандарт США для преобразования в летнее время.

Значение Указатель на символьную строку, содержащую дату и время. Возвращаемое значение указывает на статическую строку, которая перезаписывается при каждым новом вызове ctime.

Переносимость Эта функция доступна в системах UNIX и определена в ANSI C.

См. также asctime, daylight(глобальная переменная), diftime, ftime, getdate, gmtime, localtime, settime, timezone(глобальная переменная), tzset

Пример #include <stdio.h>

#include <time.h>

main(void)

{ time_t t;

t = time(NULL);

printf("Today's date and time: %s\n", ctime(&t));

}

Функция получения системной даты и времени.

Функция getdate получает системную дату.

Синтаксис #include <dos.h>

void getdate(struct date *datep);

Прототип в dos.h

Примечания Помещает в структуру типа date текущую системную дату;

datep - указатель на эту структуру. Структура date определена следующим образом:

struct date {

int da_year; /* год */

char da_day; /* день месяца */

char da_mon; /* месяц (1 = январь) */

};

Значение Нет.

Переносимость Эта функция доступна только в DOS.

См. также ctime, gettime, setdate, settime

Пример #include <dos.h>

#include <stdio.h>

main(void)

{ struct date d;

getdate(&d);

printf("The current year is: %d\n", d.da_year);

printf("The current day is: %d\n", d.da_day);

printf("The current month is: %d\n", d.da_mon);

}

Функция преобразования значения даты и времени в структуру tm

Функция localtime Преобразует значения даты и времени в структуру

Синтаксис #include <tume.h>

struct tm *localtime(const time_t *timer);

Прототип в time.h

Замечание localtime принимает адрес значения, возвращаемого функцией time, и возвращает указатель на структуру типа tm, содержащую разнесенное по отдельным полям значение времени и даты. Она корректирует эти значения с учетом часового пояса и, возможно, режима летнего времени.

Глобальная переменная timezone (типа long) должна быть установлена в значение разности в секундах между временем по Гринвичу (GMT) и местным временем (для Тихоокеанского Стандартного Времени - PST - значение timezone равно 8x60x60). Глобальной переменной daylight должно быть присвоено ненулевое значение ТОЛЬКО в случае, если применяется стандарт США режима летнего времени.

Структура tm описана в time.h следующим образом:

struct tm {

int tm_sec;

int tm_min;

int tm_hour;

int tm_mday;

int tm_mon;

int tm_year;

int tm_wday;

int tm_yday;

int tm_isdst;

};

Эти величины определяют время в 24-часовом исчислении, день месяца (от 1 до 31), месяц (от 0 до 11), день недели (воскресенью соответствует 0), (год - 1900), день года (от 0 до 365) и флаг, который отличен от нуля, если действует режим летнего времени.

Значение localtime возвращает указатель на структуру, содержащую разнесенное по отдельным полям значение времени и даты. Эта структура является статическим объектом, т.е. перезаписывается при каждом вызове.

Переносимость Эта функция доступна в системах UNIX и совместима с ANSI C.

См.также asctime, ctime, ftime, gmtime, stime, time, tzset

Пример #include <time.h>

#include <stdio.h>

#include <dos.h>

main(void)

{

time_t timer;

struct tm *tblock;

/* получает время суток */

timer = time(NULL);

/* переводит дату и время в структуру */

tblock = localtime(&timer);

printf("Local time is: %s",asctime(tblock));

}

Получение дескриптора файла (целое число, порядковый номер потока в числе открытых программой потоков)

int fileno(FILE*);

Функция получения дату и время модификации файла.

Функция getftime получает дату и время модификации файла.

Синтаксис #include <io.h>

int getftime(int handle, struct ftime *ftimep);

Прототип в io.h

Примечания getftime извлекает время и дату модификации файла на диске, открытого с обработчиком handle. ftimep - указатель на структуру ftime, в которую помещается полученная информация. Структура ftime определена следующим образом:

struct ftime {

unsigned ft_tsec: 5; /* пары секунд */

unsigned ft_min : 6; /* минуты */

unsigned ft_hour: 5; /* часы */

unsigned ft_day : 5; /* дни */

unsigned ft_month: 4; /* месяцы */

unsigned ft_year: 7; /* год - 1980 */

};

Значение При успешном завершении возвращается 0. В случае ошибки возвращается -1, и глобальная переменная errno устанавливается в одно из следующих значений:

EINVFNC Неверный номер функции

EBADF Неверный номер (обработчика) файла

Переносимость Эта функция доступна только в DOS.

См. также open, setftime

Пример #include <stdio.h>

#include <io.h>

main(void)

{ FILE *stream;

struct ftime ft;

if ((stream = fopen("TEST.$$$",

"wt")) == NULL)

{ fprintf(stderr, "Cannot open output file.\n");

return 1;

}

getftime(fileno(stream), &ft);

printf("File time: %02u:%02u:%02u\n", ft.ft_hour, ft.ft_min, ft.ft_tsec / 2);

printf("File date: %02u/%02u/%04u\n", ft.ft_month, ft.ft_day,ft.ft_year + 1980);

fclose(stream); return 0;

}

Функция получения системное время.

Функция gettime получает системное время.

Синтаксис #include <dos.h>

void gettime(struct time *timep);

Прототип в dos.h

Примечания gettime помещает текущее системное время в

структуру типа time; timep - указатель на эту

структуру.

Структура time определена следующим образом:

struct time {

unsigned char ti_min; /*минуты*/

unsigned char ti_hour; /*часы*/

unsigned char ti_hund; /*сотые доли секунды*/

unsigned char ti_sec; /*секунды*/

};

Значение Нет.

Переносимость Эта функция доступна только в DOS.

См. также getdate, setdate, settime, stime, time

Пример #include <stdio.h>

#include <dos.h>

main(void)

{ struct time t;

gettime(&t);

printf("The current time is: %2d:%02d:%02d.%02d\n", t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund); }

Функция перевода даты и времени в значение по Гринвичу.

Функция gmtime переводит дату и время в значение по Гринвичу (GMT).

Синтаксис #include <time.h>

struct tm *gmtime(const time_t *timer);

Прототип в time.h

Примечания gmtime принимает адрес значения, полученного с помощью функции time, и возвращает указатель на структуру tm, содержащую разнесенное по отдельным полям значение времени, переведенное непосредственно в GMT.

Глобальная переменная timezone должна содержать разность в секундах между временем по Гринвичу (GMT) и местным поясным временем (для Тихоокеанского Стандартного времени, PST, timezone = 8 * 60 * 60).

Глобальная переменная daylight должна иметь ненулевое значение ТОЛЬКО В ТОМ СЛУЧАЕ, если должен применяться американский стандарт летнего времени.

Структура tm определена в time.h следующим образом:

struct tm {

int tm_sec;

int tm_min;

int tm_hour;

int tm_mday;

int tm_mon;

int tm_year;

int tm_wday;

int tm_yday;

int tm_isdst;

};

Эти величины дают: время в 24-часовом исчислении, день месяца от 1 до 31, месяц от 0 до 11, день недели (воскресенью соответствует 0), (год - 1900), день года от 0 до 365 и флаг, который не равен 0, если действует летнее время.

Значение gmtime возвращает указатель на структуру tm, содержащую разнесенное по отдельным полям значение времени. Эта структура - статический объект, поэтому она перезаписывается при каждом вызове.

Переносимость Эта функция доступна в системах UNIX и определена в ANSI C.

См. также asctime, ctime, ftime, localtime, stime, time, tzset

Пример #include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <dos.h>

/* Тихоокеанское Стандартное время с режимом летнего времени */

char *tzstr = "TZ=PST8PDT";

int main(void)

{ time_t t;

struct tm *gmt, *area;

putenv(tzstr);

tzset();

t = time(NULL);

area = localtime(&t);

printf("Local time is: %s", asctime(area));

gmt = gmtime(&t);

printf("GMT is: %s", asctime(gmt));

}

Функция установки даты и времени создания / модификации файла.

Функция setftime Устанавливает дату и время создания / модификации файла.

Синтаксис #include <io.h>

int setftime(int handle, struct ftime *ftimep);

Прототип в io.h

Примечания setftime устанавливает дату и время создания / модификации файла, связанного с handle, в значения, содержащиеся в структуре ftime, на которую указывает ftimep.

Структура ftime определена следующим образом:

struct ftime {

unsigned ft_tsec: 5; /* пары секунд */

unsigned ft_min: 6; /* минуты */

unsigned ft_hour: 5; /* часы */

unsigned ft_day: 5; /* дни */

unsigned ft_month: 4; /* месяцы */

unsigned ft_year: 7; /* год - 1980 */

};

Значение setftime возвращает 0 в случае успешного завершения. В случае ошибки возвращается -1 и глобальная переменная errno устанавливается в одно из следующих значений:

EINVFNC Неверный номер функции

EBADF Неверный номер файла

Переносимость Эта функция доступна только в DOS.

См. также gettime

Пример #include <stdio.h>

#include <process.h>

#include <fcntl.h>

#include <io.h>

int main(void)

{

struct ftime filet; FILE *fp;

if ((fp = fopen("TEST.$$$", "w")) == NULL) {

perror("Error:");

exit(1);

}

fprintf(fp, "testing...\n");

/* загрузить в структуру ftime новое время и дату */

filet.ft_tsec = 1;

filet.ft_min = 1;

filet.ft_hour = 1;

filet.ft_day = 1;

filet.ft_month = 1;

filet.ft_year = 21;

/* показать время и дату в текущем справочнике */

system("dir TEST.$$$");

/* изменить время и дату */

setftime(fileno(fp), &filet);

system("dir TEST.$$$");

/* закрыть и удалить временный файл */

fclose(fp);

unlink("TEST.$$$");

return 0;

}

Просмотров: 668


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.