Функция mktime

Прототип функции 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;
}

Пример работы программы

CppStudio.com
Введите год: 2012
Введите месяц: 10
Введите день: 10
День недели: Среда
Автор: admin
Дата: 30.08.2012
Поделиться:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.