Функций для работы со временем в языке C++ несколько. Рассмотрим некоторые из них.
Первая это функция clock(), которая подключается к проекту с помощью заголовочного файла <ctime>. Она позволяет вывести время работы программы к определенному моменту. С помощью этого можно вычислять, сколько времени затрачено на тот или иной участок кода. Рассмотрим пример.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <iostream> // подключаем cin и cout #include <ctime> // подключаем clock using namespace std; int main() { int start = clock(); // засекаем время старта // далее фрагмент кода, время работы которого измеряется int i,j; for(i = 0; i < 1000; i++) { for(j = 0; j < 100; j++) { cout<<"a"; } } int end = clock(); // засекаем время окончания int t = (end - start) / CLOCKS_PER_SEC;// команда CLOCKS_PER_SEC нужна для перевода результата функции clock в секунды cout<<" "<<t; // вывод результата работы на экран cin.get(); // ждём нажатия пользователем клавиши return 0; // возвращаем 0 - "правило хорошего тона" } |
Здесь вычисляется затраченное время путем сравнения значения clock() перед началом участка кода и после его конца. Так как clock() показывает время прошедшее с начала программы, остается только такой способ.
Если необходимо не внутреннее время программы, а календарное, то можно использовать функцию time(). Она возвращает текущую дату и время, но делает это в секундах, а если точнее, то выводит количество секунд, прошедшее с 00:00 1 января 1970 года.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> #include <ctime> using namespace std; int main() { time_t sec; int kolichestvo_dney; sec = time (NULL); kolichestvo_dney = (sec/3600)/24; cout<<kolichestvo_dney<<" "<<asctime(localtime(&sec)); cin.get(); return 0; } |
Тип time_t является специализированным типом для работы с библиотекой <ctime> и работать с ним можно как с типом int. В примере выше рассчитывается количество дней прошедшее после 1 января 1970 года до текущей даты. Также с помощью команды
1 |
asctime(localtime(&sec)) |
выводится текущее локальное время - результат работы функции localtime, преобразованный в строку функцией asctime.