Datas em C++

Olá pessoal!

Vasculhando minhas coisas, achei aqui uma classe bem simples em C++ para trabalhar com datas. Está bem “rústico”, já que quando eu fiz (uns 2 anos atrás), não tinha muita noção sobre boas práticas de programação. Mas, de qualquer forma, já serve para dar uma ajuda em projetos pequenos. Ah, os métodos são todos estáticos, de forma que você não precisa instanciar a classe para utilizá-los 😉


utilitarios.h

#ifndef _UTILITARIOS_H_
#define _UTILITARIOS_H_

#include <string>

class Utilitarios {
public:
	static std::string obterHoraAtual24H(void);

	static std::string obterHoraAtual24HcomSeg(void);

	static std::string obterHoraAtual12H(void);

	static std::string obterHoraAtual12HcomSeg(void);

	static std::string obterDataNumerica(void);

	static std::string obterDataNumericaAnoResumido(void);

	static std::string obterDataPorExtenso(void);
};

#endif

utilitarios.cpp

#include "utilitarios.h"

#include <string>
#include <iostream>
#include <fstream>

#include <cstring>
#include <cstdlib>
#include <ctime>

std::string Utilitarios::obterHoraAtual24H(void) {

	time_t rawtime;
	struct tm *timeinfo;
	char buffer[20];

	time(&rawtime);
	timeinfo = localtime(&rawtime);

	strftime(buffer, 20, "%H:%M", timeinfo);

	return std::string(buffer);
}

std::string Utilitarios::obterHoraAtual24HcomSeg(void) {

	time_t rawtime;
	struct tm *timeinfo;
	char buffer[20];

	time(&rawtime);
	timeinfo = localtime(&rawtime);

	strftime(buffer, 20, "%H:%M:%S", timeinfo);

	return std::string(buffer);
}

std::string Utilitarios::obterHoraAtual12H(void) {

	time_t rawtime;
	struct tm *timeinfo;
	char buffer[20];

	time(&rawtime);
	timeinfo = localtime(&rawtime);

	strftime(buffer, 20, "%I:%M %p", timeinfo);

	return std::string(buffer);
}

std::string Utilitarios::obterHoraAtual12HcomSeg(void) {

	time_t rawtime;
	struct tm *timeinfo;
	char buffer[20];

	time(&rawtime);
	timeinfo = localtime(&rawtime);

	strftime(buffer, 20, "%I:%M:%S %p", timeinfo);

	return std::string(buffer);
}

std::string Utilitarios::obterDataNumerica(void) {

	time_t rawtime;
	struct tm *timeinfo;
	char buffer[20];

	time(&rawtime);
	timeinfo = localtime(&rawtime);

	strftime(buffer, 20, "%d/%m/%Y", timeinfo);

	return std::string(buffer);
}

std::string Utilitarios::obterDataNumericaAnoResumido(void) {

	time_t rawtime;
	struct tm *timeinfo;
	char buffer[20];

	time(&rawtime);
	timeinfo = localtime(&rawtime);

	strftime(buffer, 20, "%d/%m/%y", timeinfo);

	return std::string(buffer);
}

std::string Utilitarios::obterDataPorExtenso(void) {

	time_t rawtime;
	struct tm *timeinfo;
	char buffer[40];
	std::string data;

	time(&rawtime);
	timeinfo = localtime(&rawtime);

	strftime(buffer, 40, "%d", timeinfo);
	data = buffer;

	data += " de ";

	strftime(buffer, 40, "%m", timeinfo);
	if (strcmp(buffer, "01") == 0) {
		data += "janeiro de ";
	} else if (strcmp(buffer, "02") == 0) {
		data += "fevereiro de ";
	} else if (strcmp(buffer, "03") == 0) {
		data += "março de ";
	} else if (strcmp(buffer, "04") == 0) {
		data += "abril de ";
	} else if (strcmp(buffer, "05") == 0) {
		data += "maio de ";
	} else if (strcmp(buffer, "06") == 0) {
		data += "junho de ";
	} else if (strcmp(buffer, "07") == 0) {
		data += "julho de ";
	} else if (strcmp(buffer, "08") == 0) {
		data += "agosto de ";
	} else if (strcmp(buffer, "09") == 0) {
		data += "setembro de ";
	} else if (strcmp(buffer, "10") == 0) {
		data += "outubro de ";
	} else if (strcmp(buffer, "11") == 0) {
		data += "novembro de ";
	} else if (strcmp(buffer, "12") == 0) {
		data += "dezembro de ";
	}

	strftime(buffer, 40, "%Y", timeinfo);
	data += buffer;

	return data;
}

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.