Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Дата и время С++

Стандартная библиотека C++ не предоставляет правильный тип даты. C++ наследует структуры и функции для работы с датой и временем из C. Чтобы получить доступ к функциям и структурам, связанным с датой и временем, вам потребуется включить заголовочный файл в вашу программу на C++.

Существует четыре типа времени:clock_t, time_t, size_t. и тм . Типы - clock_t, size_t и time_t способны представлять системное время и дату как целое число.

Тип структуры tm содержит дату и время в виде структуры C, состоящей из следующих элементов —

struct tm {
   int tm_sec;   // seconds of minutes from 0 to 61
   int tm_min;   // minutes of hour from 0 to 59
   int tm_hour;  // hours of day from 0 to 24
   int tm_mday;  // day of month from 1 to 31
   int tm_mon;   // month of year from 0 to 11
   int tm_year;  // year since 1900
   int tm_wday;  // days since sunday
   int tm_yday;  // days since January 1st
   int tm_isdst; // hours of daylight savings time
}

Ниже приведены важные функции, которые мы используем при работе с датой и временем в C или C++. Все эти функции являются частью стандартной библиотеки C и C++, и вы можете проверить их детали, используя ссылку на стандартную библиотеку C++, приведенную ниже.

<тд>

time_t время(time_t *время);

Это возвращает текущее календарное время системы в количестве секунд, прошедших с 1 января 1970 года. Если в системе нет времени, возвращается .1.

<тд>

char *ctime(const time_t *time);

Это возвращает указатель на строку вида день месяц год часы:минуты:секунды год\n\0 .

<тд>

struct tm *localtime(const time_t *time);

Это возвращает указатель на tm структура, представляющая местное время.

<тд>

clock_t часы(пусто);

Это возвращает значение, которое приблизительно соответствует времени работы вызывающей программы. Если время недоступно, возвращается значение .1.

<тд>

char * asctime ( const struct tm * time );

Это возвращает указатель на строку, содержащую информацию, хранящуюся в структуре, на которую указывает время, преобразованное в форму:день месяц дата часы:минуты:секунды год\n\0

<тд>

struct tm *gmtime(const time_t *time);

Это возвращает указатель на время в виде структуры tm. Время представлено во всемирном скоординированном времени (UTC), которое по сути является средним временем по Гринвичу (GMT).

<тд>

time_t mktime(struct tm *time);

Это возвращает календарный эквивалент времени, найденного в структуре, на которую указывает time.

<тд>

двойное время разности ( time_t time2, time_t time1 );

Эта функция вычисляет разницу в секундах между временем1 и временем2.

<тд>

size_t strftime();

Эту функцию можно использовать для форматирования даты и времени в определенном формате.

Старший № Функция и назначение
1
2
3
4
5
6
7
8
9

Текущая дата и время

Предположим, вы хотите получить текущую системную дату и время либо как местное время, либо как всемирное координированное время (UTC). Ниже приведен пример для достижения того же —

Живая демонстрация
#include <iostream>
#include <ctime>

using namespace std;

int main() {
   // current date/time based on current system
   time_t now = time(0);
   
   // convert now to string form
   char* dt = ctime(&now);

   cout << "The local date and time is: " << dt << endl;

   // convert now to tm struct for UTC
   tm *gmtm = gmtime(&now);
   dt = asctime(gmtm);
   cout << "The UTC date and time is:"<< dt << endl;
}

Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —

The local date and time is: Sat Jan  8 20:07:41 2011

The UTC date and time is:Sun Jan  9 03:07:41 2011

Формат времени с помощью struct tm

тм структура очень важна при работе с датой и временем в C или C++. Эта структура содержит дату и время в форме структуры C, как упоминалось выше. В большинстве случаев связанные функции используют структуру tm. Ниже приведен пример, в котором используются различные функции, связанные с датой и временем, и структура tm —

При использовании структуры в этой главе я предполагаю, что у вас есть базовые знания о структуре C и о том, как получить доступ к элементам структуры с помощью оператора стрелка ->.

Живая демонстрация
#include <iostream>
#include <ctime>

using namespace std;

int main() {
   // current date/time based on current system
   time_t now = time(0);

   cout << "Number of sec since January 1,1970 is:: " << now << endl;

   tm *ltm = localtime(&now);

   // print various components of tm structure.
   cout << "Year:" << 1900 + ltm->tm_year<<endl;
   cout << "Month: "<< 1 + ltm->tm_mon<< endl;
   cout << "Day: "<< ltm->tm_mday << endl;
   cout << "Time: "<< 5+ltm->tm_hour << ":";
   cout << 30+ltm->tm_min << ":";
   cout << ltm->tm_sec << endl;
}

Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —

Number of sec since January 1,1970 is:: 1588485717
Year:2020
Month: 5
Day: 3
Time: 11:31:57

Язык C

  1. Расчет напряжения и тока
  2. Переменные C++, литералы и константы
  3. Классы и объекты С++
  4. Управление памятью C++:создание и удаление
  5. Публичное, защищенное и частное наследование C++
  6. Дружественные функции C++ и дружественные классы
  7. Как получить текущую дату и время в Python?
  8. Структуры и классы в C ++
  9. Перегрузка C++ (оператор и функция)
  10. Файлы и потоки C++