Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniellsn

Numero de dias entre datas

Recommended Posts

Olá galera,To precisando de uma ajuda, preciso de um programa em C onde sejam requisitados o dia, o mês e os anos atuais, o dia, o mês e o ano de nascimento do usuário, e então seja calculado e anunciado o número de dias vivido pelo usuário.Alguém sabe como fazer isso?Obrigado!Daniel

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include time.h

#include stdio.h

 

struct tm {

int tm_sec; /* Segundos, 0-59*/

int tm_min; /* Minutos, 0-59*/

int tm_hour; /*Horas 0-23 */

int tm_mday; /*dia do mês, 1-31 */

int tm_mon; /* mês a partir de janeiro, 0-11 */

int tm_year; /* anos a partir de 1900 */

int tm_wday; /* dias a partir de domingo, 0-6 */

int tm_yday; /* dias a partir de 1 de janeiro 1-365 */

int tm_isdst; /* Indicador de horário de verão */

}

 

void main(void)

{

struct tm *local;

time_t t;

t= time(NULL);

local=localtime(&t);

int dia, mes, ano, dia_usu, mes_usu, ano_usu;

 

dia=local->tm_mday;

mes=local->tm_mon+1;

ano=local->tm_year+1900;

 

printf("Informe o dia do nascimento:");

scanf("%d", &dia_usu);

printf("Informe o mes do nascimento:");

scanf("%d", &mes_usu);

printf("Informe o ano do nascimento:");

scanf("%d", &ano_usu);

 

//calculo

ano_usu= ano_usu-ano

mes_usu= mes_usu-mes

if(mes_usu <0) // se resultado for negativo multiplica por -1

{

mes_usu= mes_usu*(-1)

}

dia_usu= dia_usu-mes

if(dia_usu <0) // se resultado for negativo multiplica por -1

{

dia_usu= dia_usu*(-1)

}

//resposta dos dias, meses e anos de vida do usuario

printf("O usuario tem:%d %d %d" dia_usu, mes_usu, ano_usu);

}

 

Aí, de uma forma meio grosseira, acho q isso resolve seu problema... Precisa aperfeiçoar!!!

Parte disso encontrei no site: http://vivaolinux.com.br/dicas/verDica.php?codigo=1008

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include time.h#include stdio.hstruct tm {int tm_sec; /* Segundos, 0-59*/int tm_min; /* Minutos, 0-59*/int tm_hour; /*Horas 0-23 */int tm_mday; /*dia do mês, 1-31 */int tm_mon; /* mês a partir de janeiro, 0-11 */int tm_year; /* anos a partir de 1900 */int tm_wday; /* dias a partir de domingo, 0-6 */int tm_yday; /* dias a partir de 1 de janeiro 1-365 */int tm_isdst; /* Indicador de horário de verão */} void main(void){struct tm *local;time_t t;t= time(NULL);local=localtime(&t);int dia, mes, ano, dia_usu, mes_usu, ano_usu;dia=local->tm_mday;mes=local->tm_mon+1;ano=local->tm_year+1900;printf("Informe o dia do nascimento:"); scanf("%d", &dia_usu);printf("Informe o mes do nascimento:"); scanf("%d", &mes_usu);printf("Informe o ano do nascimento:"); scanf("%d", &ano_usu);//calculoano_usu= ano_usu-anomes_usu= mes_usu-mesif(mes_usu <0) // se resultado for negativo multiplica por -1{ mes_usu= mes_usu*(-1)}dia_usu= dia_usu-mesif(dia_usu <0) // se resultado for negativo multiplica por -1{ dia_usu= dia_usu*(-1)}//resposta dos dias, meses e anos de vida do usuarioprintf("O usuario tem:%d %d %d" dia_usu, mes_usu, ano_usu);} Aí, de uma forma meio grosseira, acho q isso resolve seu problema... Precisa aperfeiçoar!!!Parte disso encontrei no site: http://vivaolinux.com.br/dicas/verDica.php?codigo=1008

Nossa cara foi maus ai, mais pelo amor de deus oq e isso. tem ate uma parte onde pega a hora do relogio do pc. Credo. Bom para mim este codigo ai nao e tudo.Ficaria mais simples se o cara simplesmente entrace com o ano mes e a quantidade de dias.multiplica ano * *360 dias + mes * 30 dias. Pronto você ja tem a quantidade de dias atuais.agora você pega e faz a mesma coisa com a data em q ele nasceu. e depois e so diminuir e mostrar.você deve estar no 1º periodo de SI ne e o cara aqui de cima no 5 º ou 6º . Pq ta loko nao to tirando, pode estar correticimo, mais para trabalho simples o cara escrever o codigo aqui de cima vai complicar tudo.e mais facil se fosse um codigo simples ok.Bom qualquer coisa me add no msn para nos trocarmos uma ideia. Nao fasso o codigo pq se você esta na faculdade e um trabalho para você fazer no maximo posso tirar suas duvidas e nao fazer um trabalho para você ok,paredaoflog@hotmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.