Daniel Abano Posted May 25, 2020 at 09:46 PM Report Share #618206 Posted May 25, 2020 at 09:46 PM (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 at 10:05 PM by Daniel Abano Nao tinha usado a opcao de codigo para inserir o mesmo Link to comment Share on other sites More sharing options...
antseq Posted May 26, 2020 at 08:33 AM Report Share #618208 Posted May 26, 2020 at 08:33 AM 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 comment Share on other sites More sharing options...
Daniel Abano Posted May 27, 2020 at 06:37 PM Author Report Share #618238 Posted May 27, 2020 at 06:37 PM 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 comment Share on other sites More sharing options...
Rui Carlos Posted May 27, 2020 at 06:43 PM Report Share #618239 Posted May 27, 2020 at 06:43 PM Uma solução simples é converter 2020/03/08 para 20200308, em vez de 2031. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
Daniel Abano Posted May 27, 2020 at 06:55 PM Author Report Share #618240 Posted May 27, 2020 at 06:55 PM 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 comment Share on other sites More sharing options...
Rui Carlos Posted May 27, 2020 at 07:02 PM Report Share #618241 Posted May 27, 2020 at 07:02 PM 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 comment Share on other sites More sharing options...
Daniel Abano Posted May 27, 2020 at 07:13 PM Author Report Share #618242 Posted May 27, 2020 at 07:13 PM 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 comment Share on other sites More sharing options...
Daniel Abano Posted May 27, 2020 at 07:16 PM Author Report Share #618243 Posted May 27, 2020 at 07:16 PM Estou só a pensar como agora separar uma data como por exemplo 20130417 para 17/04/2013 Link to comment Share on other sites More sharing options...
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