sábado, 5 de setembro de 2015

Comparando duas datas


Aproveitando o uso da função strftime (); da biblioteca padrão time.h do C,
que captura a data atual do sistema, criei este código que faz comparações
e mostra o total de anos passados desde o que foi digitado com o atual
que foi capturado.
Código indicado a aprendizes de linguagem C.

Veja abaixo imagens do programa em execução:





Veja abaixo o código do programa:

#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <time.h>
void Janela5 ( ) {
     int lin, col;
     col = 0;
     for ( lin = 2; lin <= 24; lin++ )
         for ( col = 2; col <= 78; col++ ) {
              gotoxy ( col, lin );
              textbackground ( BLACK );
              printf ( " " );
         }
}
int main ( void ) {
     system ( "title COMPARANDO DUAS DATAS" );
     int year, ano, a_no, anos, m_es, meses, mes_es = 0;
     struct tm *tm;
     time_t t;
     char data [ 15 ];
     char mes [ 3 ];
     time ( &t );
     tm = localtime ( &t );
     strftime ( data, 15, "%d/%m/%Y", tm );
     textcolor ( LIGHTBLUE );
     gotoxy ( 20, 7 );
     Janela5 ( );
     textcolor ( LIGHTRED );
     gotoxy ( 32, 5 );
     printf ( "COMPARANDO DUAS DATAS" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 25, 7 );
     printf ( "Programa desenvolvido por:" );
     textcolor ( WHITE );
     gotoxy ( 52, 7 );
     printf ( "Samuel Lima" );
     textcolor ( LIGHTMAGENTA );
     gotoxy ( 34, 9 );
     printf ( "sa_sp10@hotmail.com" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 18, 11 );
     do {
         gotoxy ( 18, 11 );
         textcolor ( LIGHTBLUE );
         printf ( "Digite o ano em que você nasceu " );
         textcolor ( LIGHTRED );
         scanf ( "%d", &ano );
         fflush ( stdin );
         strftime ( data, 15, "%Y", tm );
         year = atoi ( data );
         if ( ano >= year ) {
              textcolor ( LIGHTBLUE );
              gotoxy ( 18, 13 );
              printf ( "O ano não pode ser maior que o ano atual" );
              Sleep ( 1800 );
              textcolor ( WHITE );
              gotoxy ( 30, 23 );
              printf ( "PRESSIONE QUALQUER TECLA" );
              getche ( );
              gotoxy ( 18, 13 );
              clreol ( );
              gotoxy ( 30, 23 );
              clreol ( );
              gotoxy ( 50, 11 );
              clreol ( );
         }
     } while ( ano >= year );
     do {
         textcolor ( LIGHTBLUE );
         gotoxy ( 18, 13 );
         printf ( "Digite o mês " );
         textcolor ( LIGHTRED );
         scanf ( "%d", &m_es );
         fflush ( stdin );
         if ( ( m_es < 1 ) || ( m_es >= 13 ) ) {
              textcolor ( LIGHTBLUE );
              gotoxy ( 18, 15 );
              printf ( "O mês tem que está entre 1 e 12" );
              Sleep ( 1800 );
              textcolor ( WHITE );
              gotoxy ( 30, 23 );
              printf ( "PRESSIONE QUALQUER TECLA" );
              getche ( );
              gotoxy ( 18, 15 );
              clreol ( );
              gotoxy ( 30, 23 );
              clreol ( );
              gotoxy ( 31, 13 );
              clreol ( );
         }
     } while ( ( m_es < 1 ) || ( m_es >= 13 ) );
     strftime ( data, 15, "%Y", tm );
     a_no = atoi ( data );
     anos = a_no - ano;
     strftime ( mes, 3, "%m", tm );
     meses = atoi ( mes );
     if ( m_es < meses ) {
         mes_es = meses - m_es;
     }
     if ( m_es > meses ) {
         mes_es = m_es - meses;
     }
     textcolor ( LIGHTBLUE );
     gotoxy ( 18, 15 );
     printf ( "Você tem " );
     textcolor ( LIGHTRED );
     printf ( "%d", anos );
     textcolor ( LIGHTBLUE );
     printf ( " anos e" );
     textcolor ( LIGHTRED );
     printf ( " %d", mes_es );
     textcolor ( LIGHTBLUE );
     printf ( " mêses" );
     Sleep ( 1800 );
     textcolor ( LIGHTRED );
     gotoxy ( 36, 23 );
     printf ( "MUITO OBRIGADO" );
     getche ( );
}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.