
Программирование (1 семестр; 1 курс) / ЛАБОРАТОРНЫЕ РАБОТЫ / Работа с датой и временем time_h
.pdf
РАБОТА С ДАТОЙ И ВРЕМЕНЕМ
В библиотеке time.h
1. объявлена следующая структура:
struct tm { |
|
int tm_sec; |
//секунды [0,59] |
int tm_min; |
//минуты [0,59] |
int tm hour; |
//часы [0,23] |
int tm_mday; |
//число месяца [1,31] |
int tm_wday; |
//день недели [0,6] |
int tm_mon; |
// месяцы [0,11] |
int tm_year; |
//год после 1900 |
int tm_yday; |
//день [0,365] |
int tm_isdst; |
// флаг летнего времени |
}; 2 определены следующие типы данных:
time_t – это тип, который содержит календарное время в формате, в которой оно возвращяется функцией time() и обрабатывается функцией difftime().
typedef long time_t;
clock_t – это тип данных для предоставления времени, функция clock(), возвращает этот тип данных.
typedef long clock_t;
3. определены прототипы следующих функций:
Функция |
Действие |
|
char* ctime (const time_t*) |
Преобразует дату и время в строку |
|
char * asctime (const tm*) |
||
|
||
double difftime(time_t, time_t) |
Вычисляет интервал времени выполнении |
|
clock_t сlock( void ) |
||
программы в микросекундах |
||
tm* localtime(const time_t*) |
Преобразует дату и время в структуру tm |
|
tm* gmtime(const time_t*) |
||
|
||
time_t time (time_t*) |
Возвращает текущее время (системное) |
В прикладной программе зачастую приходится использовать значение текущей даты и времени. Для этого необходимо:
1.подключить библиотеку time.h
2.определить указатель на структуру tm: struct tm *date_time;
ипеременную типа time_t: time_t timer;
3.для получения текущего (системного) времени воспользоваться функцией time(): time(&timer);
4.преобразует дату и время в структуру tm, можно двумя способами:
4.1 с помощью функции localtime()

date_time = localtime(&timer);
4.2 с помощью функции gmtime () date_time = gmtime(&timer);
5. преобразует дату и время в строку, можно двумя способами:
5.1 с помощью функции ctime ()
printf("The present date and time is: %s\n", ctime(&timer));
5.2 с помощью функции asctime ()
printf("The present date and time is: %s\n", asctime(date_time));
6. вычислить время выполнения программы, можно двумя способами:
6.1с помощью функции clock() printf("%lf\n", clock()/1000.0);
6.2с помощью функции difftime ()
printf("The present date and time is: %s\n", asctime(date_time)); time_t timer1 = time(NULL);
// код программы time_t timer2 = time(NULL);
printf("%lf", difftime(timer2,timer1));
Пример программы:
#include <stdio.h> #include <time.h> #include <clocale> using namespace std; void main(){
setlocale(LC_ALL,"Russian");
struct tm *date_time; time_t timer;
time(&timer);
date_time = localtime(&timer);
printf("День недели: %d\n",date_time->tm_wday);
printf("The present date and time is: %s\n", ctime(&timer));
printf("%lf\n",clock()/1000.0);
}