Ir ao conteúdo

Posts recomendados

Postado

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
Postado

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
Postado

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
Postado

@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 .

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!