Classe para manipulação e conversão de datas para std::string em C++

Publicado por Jean César (última atualização em 01/08/2017)

[ Hits: 521 ]

Download datestrings-0.1.tgz




Classe para manipulação e formatação de datas.

Desenvolvi a classe, parcialmente, para converter datas para std::strings fazendo inserção dos zero a esquerda e formatar os separadores conforme gosto do usuário,

O desenvolvedor pode usar outras funções do c++ para formatar datas, tais como a:

std::put_time(&tm, "%Y-%m-%d)

Porém minha necessidade era formatar datas no momento do input de usuário.

  



Esconder código-fonte

#ifndef _MAIN_CXX
#define _MAIN_CXX

#include "date.hxx"

/*!
 *
 * @begin @section terms_of_use Terms of Use
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.0 of the License, or (at your option) any later version.
 *
 * @end @section terms_of_use Terms of Use
 * 
 * @begin @section author Author
 * 
 * @file       main.cxx 
 * @version    0.1
 * @objetive   converter datas para em strings
 * @brief      main header.
 * @author     Jean Zonta
 * @email      wiki.anon@yahoo.com.br
 * @Copyright (C) 2017 Jean Zonta.
 * 
 * @end @section author Author
 *
*/

int main()
{
  time_t mt = time(0);
  tm* tms = localtime(&mt);
  
  int dia = tms->tm_mday;
  int mes = tms->tm_mon+1;
  int ano = tms->tm_year+1900;
  
  //funçoes ostream pega data separadas por pontos convertendo para string e imprimindo na tela
  Date mydate;
       mydate.day(07);
       mydate.month(07);
       mydate.year(2017);
  std::cout<<"\n\tDia: "<<mydate.getDia()
           <<"\n\tMes: "<<mydate.getMes()
           <<"\n\tAno: "<<mydate.getAno()<<"\n\n";
  
  //funçoes istream pega data e converte para string nescessita do get para dar retorno
  Date data;
  std::cout<<"\n\t"<<data.setDia(01).setMes(07).setAno(00);
  std::cout<<"\n\tDia: "<<data.getDia()
           <<"\n\tMes: "<<data.getMes()
           <<"\n\tAno: "<<data.getAno()<<"\n\n";
 
      
  Date date;   
  date.setDia(dia, "-").setMes(mes,"-").setAno(ano,"\n"); 
  std::cout<<"\n\tDia: "<<date.getDia()
           <<"\n\tMes: "<<date.getMes()
           <<"\n\tAno: "<<date.getAno()<<"\n\n"; 

      
  std::cout<<"\n\t"<<Date(tms->tm_mday, tms->tm_mon+1, tms->tm_year+1900);
  
  Date d(tms->tm_mday, tms->tm_mon+1, tms->tm_year+1900);
   
  std::cout<<"\n\tDia: "<<d.getDia()
           <<"\n\tMes: "<<d.getMes()
           <<"\n\tAno: "<<d.getAno()<<"\n\n";

  Date dt;
  unsigned int dias, meses, anos;
  std::cout<<"\n\tDigite uma dia mes e ano\n\tex.(01 02 02 ou 01 02 2000): ";
  std::cin>>dias>>meses>>anos;
 

  std::cout<<"\n\t"<<data.setDia(dias).setMes(meses).setAno(anos);
  dt.setDia(dias, "\"").setMes(meses,"\"").setAno(anos,"\n");
  std::cout<<"\n\tDia: "<<dt.getDia()
           <<"\n\tMes: "<<dt.getMes()
           <<"\n\tAno: "<<dt.getAno()<<"\n\n";
}

#endif

Scripts recomendados

Arvore AVL

Fibbonacci com Memoization - O(n)

Gerenciamento de Área de Alocação Dinâmica (Listas Encadeadas)

jogo Sokoban (com gráficos)

Agenda completa em C com SQL


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts