Daniel Abano 0 Posted May 25, 2020 Report Share Posted May 25, 2020 (edited) Boas, tenho um projeto de programação no qual me pede numa determinada função para mostrar a data mais recente(relativamente ás data inseridas numa outra funçao), tenho ja a data numa estutura, assim fiz a soma do dia mês e ano e comparei esse valor da soma com um valor maximo completamente absurdo, tudo funciona mas agora não sei como acho a data a qual a soma do dia mes e ano corresponde.Obrigado int hora_maximo=999999 for(i=0; i<total_viaturas; i++) { data=viaturas.dataregisto.ano+viaturas.dataregisto.mes+viaturas.dataregisto.dia if(data<hora_maximo) { hora_maximo=data; } } printf("\nData mais recente: %d",hora_maximo); no printf final devia ser suposto aparecer a data mais recente, sendo que precisava de testar se a soma estava a funcionar corretamente entao inseri nono printf hora_max Ps: Objetivo é mostar a data mais recente depois de a achar atraves da soma e comparacao das mesmas datas inseridas no programa. Edited May 25, 2020 by Daniel Abano Nao tinha usado a opcao de codigo para inserir o mesmo Link to post Share on other sites
antseq 91 Posted May 26, 2020 Report Share Posted May 26, 2020 10 horas atrás, Daniel Abano disse: Boas, tenho um projeto de programação no qual me pede numa determinada função para mostrar a data mais recente(relativamente ás data inseridas numa outra funçao), tenho ja a data numa estutura, assim fiz a soma do dia mês e ano e comparei esse valor da soma com um valor maximo completamente absurdo, tudo funciona mas agora não sei como acho a data a qual a soma do dia mes e ano corresponde.Obrigado int hora_maximo=999999 for(i=0; i<total_viaturas; i++) { data=viaturas.dataregisto.ano+viaturas.dataregisto.mes+viaturas.dataregisto.dia if(data<hora_maximo) { hora_maximo=data; } } printf("\nData mais recente: %d",hora_maximo); no printf final devia ser suposto aparecer a data mais recente, sendo que precisava de testar se a soma estava a funcionar corretamente entao inseri nono printf hora_max Ps: Objetivo é mostar a data mais recente depois de a achar atraves da soma e comparacao das mesmas datas inseridas no programa. Viva, Somar Ano, Mês e Dia vai dar origem a uma série de datas com o mesmo valor: 2020 + 01 + 10 = 2031 2020 + 02 + 09 = 2031 2020 + 03 + 08 = 2031 Todas tem o valor de comparação 2031, qual delas é a mais recente? 1 Report Link to post Share on other sites
Daniel Abano 0 Posted May 27, 2020 Author Report Share Posted May 27, 2020 Alguma solução relativamente ás datas com o mesmo valor? Comparação das mesmas? Por exemplo comparar primeiro o ano, se for igual comparar o mês e se o mês for igual comparar o dia? Isto para as datas cujo o valor da soma seja o mesmo Neste momento não me importava de saber apenas como mostrar a data cujo obti na soma! Link to post Share on other sites
Rui Carlos 367 Posted May 27, 2020 Report Share Posted May 27, 2020 Uma solução simples é converter 2020/03/08 para 20200308, em vez de 2031. Rui Carlos Gonçalves Link to post Share on other sites
Daniel Abano 0 Posted May 27, 2020 Author Report Share Posted May 27, 2020 Boas, estou a fazer assim: Int dia=0,mes=0,ano=0,data,data_maximo=999999999; for(i=0; i<total_viaturas; i++) { dia=viaturas[i].dataregisto.dia*10; mes=viaturas[i].dataregisto.mes*100; ano=viaturas[i].dataregisto.ano*10000; if(data<data_maximo) { data_maximo=data; } } data=ano+mes+dia; printf("\nData mais recente: %d",data); Por exemplo, se inserir a data 27/04/2013 o printf mostra 20130570, sendo que noa esta correto, isto apenas para ver se a soma esta a ser feita corretamente. Link to post Share on other sites
Rui Carlos 367 Posted May 27, 2020 Report Share Posted May 27, 2020 Por que razão estás a multiplicar o dia? Adicionalmente, quando fazes a comparação, qual é o valor de data? Rui Carlos Gonçalves Link to post Share on other sites
Daniel Abano 0 Posted May 27, 2020 Author Report Share Posted May 27, 2020 Boas, ficou da seguinte maneira: Int dia,mes,ano,data,data_maximo=0; for(i=0; i<total_viaturas; i++) { dia=(viaturas[i].dataregisto.dia); mes=(viaturas[i].dataregisto.mes)*100; ano=(viaturas[i].dataregisto.ano)*10000; data=ano+mes+dia; if(data>data_maximo) { data_maximo=data; } } printf("\nData mais recente: %d",data_maximo); Penso que ficou resolvido, obrigado Link to post Share on other sites
Daniel Abano 0 Posted May 27, 2020 Author Report Share Posted May 27, 2020 Estou só a pensar como agora separar uma data como por exemplo 20130417 para 17/04/2013 Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now