Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Data e hora do C++


A biblioteca padrão C++ não fornece um tipo de data adequado. C++ herda as estruturas e funções para manipulação de data e hora de C. Para acessar funções e estruturas relacionadas a data e hora, você precisaria incluir o arquivo de cabeçalho em seu programa C++.

Existem quatro tipos relacionados ao tempo:clock_t, time_t, size_t e tm . Os tipos - clock_t, size_t e time_t são capazes de representar a hora e a data do sistema como algum tipo de inteiro.

O tipo de estrutura tm mantém a data e hora na forma de uma estrutura C com os seguintes elementos -
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
}

A seguir estão as funções importantes, que usamos ao trabalhar com data e hora em C ou C++. Todas essas funções fazem parte da biblioteca padrão C e C++ e você pode verificar seus detalhes usando a referência à biblioteca padrão C++ fornecida abaixo.
Sr.Nº Função e Propósito
1
time_t time(time_t *time);

Isso retorna a hora atual do calendário do sistema em número de segundos decorridos desde 1º de janeiro de 1970. Se o sistema não tiver hora, será retornado .1.
2
char *ctime(const time_t *time);

Isso retorna um ponteiro para uma string no formato dia mês ano horas:minutos:segundos ano\n\0 .
3
struct tm *localtime(const time_t *time);

Isso retorna um ponteiro para o tm estrutura que representa a hora local.
4
clock_t clock(void);

Isso retorna um valor que aproxima a quantidade de tempo que o programa de chamada está em execução. Um valor de 0,1 é retornado se o tempo não estiver disponível.
5
char * asctime ( const struct tm * time );

Isso retorna um ponteiro para uma string que contém as informações armazenadas na estrutura apontada por hora convertida na forma:dia mês data horas:minutos:segundos ano\n\0
6
struct tm *gmtime(const time_t *time);

Isso retorna um ponteiro para o tempo na forma de uma estrutura tm. A hora é representada no Tempo Universal Coordenado (UTC), que é essencialmente o Tempo Médio de Greenwich (GMT).
7
time_t mktime(struct tm *time);

Isso retorna o tempo de calendário equivalente ao tempo encontrado na estrutura apontada por time.
8
duplo difftime ( time_t time2, time_t time1);

Esta função calcula a diferença em segundos entre time1 e time2.
9
size_t strftime();

Esta função pode ser usada para formatar data e hora em um formato específico.

Data e hora atuais


Suponha que você queira recuperar a data e hora atuais do sistema, seja como hora local ou como Hora Universal Coordenada (UTC). A seguir está o exemplo para alcançar o mesmo -
Demonstração ao vivo
#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;
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -
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

Formatar hora usando struct tm


O tm estrutura é muito importante ao trabalhar com data e hora em C ou C++. Essa estrutura mantém a data e a hora na forma de uma estrutura C, conforme mencionado acima. Na maioria das vezes, as funções relacionadas fazem uso da estrutura tm. A seguir está um exemplo que faz uso de várias funções relacionadas a data e hora e estrutura tm −

Ao usar a estrutura neste capítulo, estou assumindo que você tem conhecimento básico sobre a estrutura C e como acessar os membros da estrutura usando o operador seta ->.
Demonstração ao vivo
#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;
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Number of sec since January 1,1970 is:: 1588485717
Year:2020
Month: 5
Day: 3
Time: 11:31:57

Linguagem C

  1. Cálculos de tensão e corrente
  2. Variáveis, literais e constantes de C++
  3. Classes e objetos C++
  4. Gerenciamento de memória C++:novo e excluir
  5. Herança pública, protegida e privada C++
  6. Função de amigo C++ e classes de amigo
  7. Como obter data e hora atuais em Python?
  8. Estruturas e classes em C ++
  9. Sobrecarga de C++ (operador e função)
  10. Arquivos e fluxos C++