Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Marcio Roberto Cordeiro

C Retornar o ano atual no sistema e exibir na tela em C

Recommended Posts

O comando a baixo utiliza-se da biblioteca time.h para retornar do sistema o ano atual, permitindo atribuir este retorno a uma variável do tipo inteira e exibir o mesmo na tela. Este recurso poderá ser muito útil quando o programador queira utilizar o ano atual para definir algum resultado.

 

Exemplo: Programa que calcula a idade do usuário, subtraindo o ano atual pelo ano de nascimento do usuário.

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>//Biblioteca com comandos de data e hora

int main()
{

    int anoAtual;//Esta variável foi criada para receber o resultado do comando que exibe o ano atual.
    time_t data_ano;//Foi criada uma variável chamada data_ano que é do tipo time_t que é um tipo de variável que recebe valores de data e hora.
    time(&data_ano);
  
    struct tm *data = localtime(&data_ano);

    anoAtual = (data->tm_year+1900);    

    printf("%d\n",anoAtual);
    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado caro amigo. O problema é que este comando mencionado por você, dá o resultado como caractere, não permitindo efetuar calculos com o mesmo. Eu já tinha efetuado este comando logo quando escrevi o meu programinha. Mas eu não pude efetuar o calculo que eu precisava, então eu fiz este segundo que retorna a data como um tipo numérico real. Mas agradeço mesmo assim. :thumbsup:

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for sistema Windows um jeito simples de fazer isso no C é usar a estrutura SYSTEMTIME presente no windows.h

 

https://msdn.microsoft.com/pt-br/library/windows/desktop/ms724950(v=vs.85).aspx

 

Isso que você quer fazer fica +/- assim:

 

#include <windows.h>
#include <stdio.h>

int main()
{
    SYSTEMTIME str_t;
	GetSystemTime(&str_t);

    int anoAtual = str_t.wYear;

    printf("%d\n",anoAtual);
    return 0;
}

 

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Marcio Roberto Cordeiro    desculpe,  pensei que você estivesse pedindo uma ajuda e não observei que você estava é dando uma solução, e seu código funciona bem, mas o que postei também, o que precisa é fazer a adaptação adequada , transformando o char para inteiro usando para isso a função atoi  assim  :

#include <time.h>
char data[9],hora[9],c[3];
int dia,mes,ano;
_strdate(data);
_strtime(hora);
c[0]=data[3];
c[1]=data[4];
dia =atoi(c);
c[0]=data[0];
c[1]=data[1];
mes =atoi(c);
c[0]=data[6];
c[1]=data[7];
ano =atoi(c);
printf("A Data Em Portugues --------> %d/%d/%d\n",dia,mes,ano);

assim o dia, mês e ano são variáveis do tipo inteiro e podem ser usadas em operações matemáticas, apenas que o ano terá apenas os dois dígitos finais e os dois iniciais terão que ser inseridos de acordo com a necessidade .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×