Прототип функции mktime:
time_t mktime( struct tm * ptrtime );
Заголовочный файл
Название | Язык |
---|---|
time.h | С |
ctime | С++ |
Описание
Интерпретирует содержимое структуры tm, передаваемой в функцию в качестве аргумента через указатель на ptrtime
в формат местного времени. Данная функция по некоторым исходным значениям времени восстанавливает значения остальных членов ptrtime
, соответственно.
Исходные значения членов структуры tm_wday
и tm_yday
из ptrtime
игнорируются. Диапазоны значений для остальных членов структуры ограничиваются их нормальными значениями (например, диапазон значений tm_mday
находится между 1 и 31).
Объект, на который указывает ptrtime
изменяется, а именно — инициализируются переменные-члены tm_wday
и tm_yday
, и изменяются значения других переменных-членов в пределах нормы, в соответствии с указанным временем.
Параметры:
- ptrtime
Указатель на временную структуруtm
, которая содержит календарное время распределенное по соответствующим переменным.
Возвращаемое значение
Значение типа time_t
, соответствующее календарному времени, которое передается в функцию в качестве аргумента.
В случае ошибки функция возвращает значение -1.
Пример: исходный код программы
//пример использования функции mktime: определить день недели #include <iostream> #include <ctime> int main () { time_t rawtime; // тип данных для хранения количества секунд struct tm * timeinfo; // структура даты и времени int year, month ,day; char * weekday[] = { "Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"}; //Ввод даты std::cout << "Введите год: "; std::cin >> year; std::cout << "Введите месяц: "; std::cin >> month; std::cout << "Введите день: "; std::cin >> day; // получить текущую информацию о дате и изменить её относительно введенной time( &rawtime ); // текущая дата в секундах timeinfo = localtime( &rawtime ); // преобразовние текущей даты из секунд к нормальному виду timeinfo->tm_year = year - 1900; // корректируем год timeinfo->tm_mon = month - 1; // корректируем значение месяца timeinfo->tm_mday = day; // введённый день mktime( timeinfo ); // определить день недели std::cout << "День недели: " << weekday[timeinfo->tm_wday] << std::endl; return 0; }
Пример работы программы
Введите месяц: 10
Введите день: 10
День недели: Среда