Ir ao conteúdo
  • Cadastre-se

C Dias Vividos em C


Posts recomendados

Boa tarde galera,

 

Tenho uma dúvida aqui. Preciso escrever um código onde eu digito a data do meu aniversário e o programa me informa, levando em consideração os anos bissextos, quantos dias corridos eu vivi. Porém, é para ele pegar do computador a data atual e não é para o usuário digitá-la. Não estou conseguindo implementar dessa forma, só consigo se eu digitar a data atual hehe..

 

Alguém pode dar um help ?

 

Segue o código (estou usando o Codeblock):

 

#include<stdio.h>
#include<locale.h>

int main(){
setlocale(LC_ALL, "portuguese");
 int dia,diaatual,mes,mesatual,ano,anoatual,totaldias;
int anos, meses, dias, diaano, diames;

printf("Digite a data do seu aniversario no formato DD MM AAAA: \n");
scanf("%d %d %d",&dia, &mes, &ano );

printf("Digite a data de hoje no formato DD MM AAAA: \n");
scanf("%d %d %d",&diaatual, &mesatual, &anoatual);

//total de anos vividos
anos=anoatual-ano;

// diaano é os anos multiplicados por 365 dias, mais os dias dos anos bissextos, obtido pelo resto a divisao por 4
diaano=(anos%4)+(anos*365);

if(mesatual>mes){
meses=mesatual-mes;
}
else {
meses=mes-mesatual;
}

// meses convertido em dias
diames=meses*30;

if(diaatual>dia){
dias=diaatual-dia;
}

else {
dias=dia-diaatual;
}
totaldias=diames+diaano+dias;
printf("voce viveu: %d dias",totaldias);

}

 

 

Link para o comentário
Compartilhar em outros sites

Inclua:

#include <time.h>

e use:

time_t agora_segundos = time(NULL);
struct tm *agora = localtime(&agora_segundos);
diaatual = agora->tm_mday;
mesatual = agora->tm_mon + 1;
anoatual = agora->tm_year + 1900;

time() para obter o tempo que passou em segundos dês do início da "Era Unix".

localtime() para converter para data e hora locais no formato da struct tm (http://en.cppreference.com/w/c/chrono/tm).

 

Link para o comentário
Compartilhar em outros sites

@isrnick  Estou com um livro aqui e logo logo chego no ponto de estudar a respeito da struct tm. Tô curioso p aprender bem a respeito disso!

adicionado 3 minutos depois

Já vou aproveitar para fazer uma pergunta rápida: Daria para fazer um cronômetro usando essa struct?

Link para o comentário
Compartilhar em outros sites

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