С++ time() localtime() как вывести текущее время или дату
Тэги: язык С указатели язык С основы язык С struct язык С localtime
📅24-10-2018 👁341
Программа отображает на экране текущее время:
#include <ctime>
#include <iostream>
using namespace std;
int main ()
{
tm *pp; // получаем указатель на структуру ТМ
time_t ttt; // переменная ттт будет типа time_t чтобы записать в нее таймкод и использовать в функии локалтайм
ttt = time('\0'); // получаем временную метку
pp = localtime (&ttt); // получаем указатель на поэлементную форму параметра временной метку (curtime) представленную в виде структуры tm
cout << pp->tm_hour<<':'<<pp->tm_min<<':'<<pp->tm_sec;
return 0;
}
Мы используем указатель на структуру tm, которая имеет вид:
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
}
Функция localtime() преобразует временную метку в поэлементное, прототип:
struct tm *localtime (const time_t *curtime);
Мы должны этой функции передать временную метку в ФОРМАТЕ ТИПА time_t
Так как стоит звездочка, мы должны передать адрес начала этой временной метки, поэтому ставим оператор &
ํНа выходе функции мы получаем указатель на структуру.
Вывод даты в текстовом формате:
Если добавить в конец предыдущей программы строчку
cout << '\n' << asctime (pp);
То получим дату: Wed Oct 24 12:57:11 2018
Функция asctime() возвращает указатель на строку, которая содержит результат преобразования информации, хранимой по адресу струкуры рр (в нашем случае).
Прототип:
char *asctime(const struct tm *ptr);
Оставить свой ответ: