Jump to content
Daniel Abano

Achar a data mais recente

Recommended Posts

Daniel Abano

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 by Daniel Abano
Nao tinha usado a opcao de codigo para inserir o mesmo

Share this post


Link to post
Share on other sites
antseq
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?

  • Vote 1

Share this post


Link to post
Share on other sites
Daniel Abano

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!
 

Share this post


Link to post
Share on other sites
Daniel Abano

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. 

Share this post


Link to post
Share on other sites
Daniel Abano

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

Share this post


Link to post
Share on other sites
Daniel Abano

Estou só a pensar como agora separar uma data como por exemplo 20130417 para 17/04/2013

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.