encontrar a data mais próxima

 

Bom dia a todos,

Tenho 10 datas, e quero saber qual delas é a mais próxima da hora atual, qual fórmula eu poderia usar?

Obrigado pelo apoio.

 
dr.house7:

Bom dia a todos,

Tenho 10 datas, e quero saber qual delas é a mais próxima da hora atual, qual fórmula eu poderia usar?

Obrigado pelo apoio.

Olá dr.house7,

você pode nos mostrar alguma tentativa de esforço?

Você já tentou alguma coisa até agora? Você tem algum pedaço de código para nos mostrar?

Se você não tem nada para mostrar, então é melhor procurar na Base de Código ou colocar um emprego na Seção de Empregos.

 
Malacarne:

Oi dr.house7,

você pode nos mostrar alguma tentativa de esforço?

Você já tentou alguma coisa até agora? Você tem algum pedaço de código para nos mostrar?

Se você não tem nada para mostrar, então é melhor procurar na Base de Código ou colocar um emprego na Seção de Empregos.

engraçado
 
dr.house7:
engraçado

Olá, Mister House, por que engraçado? Você quer código de graça?

Não há uma fórmula direta, penso eu. O seu horário de 10 datas está em um array? Crie um loop para comparar cada data/hora com a hora atual e mantenha a data/hora mais próxima da hora atual.

Se você afixar seu código, você terá ajuda, com certeza.

 
angevoyageur:

Olá, Mister House, por que engraçado? Você quer código de graça?

Não há uma fórmula direta, penso eu. O seu horário de 10 datas está em um array? Crie um loop para comparar cada data/hora com a hora atual e mantenha a data/hora mais próxima da hora atual.

Se você afixar seu código, você terá ajuda, com certeza.

Esta é exatamente a resposta que eu estava procurando, obrigado Ange!

p.s.

Eu sempre codifiquei de graça, no fórum tsd

 

ok, aqui está o código:

int touchedline[10];
int temp = 0;

touchedline[0]=doc1Time;
touchedline[1]=doc2Time;
touchedline[2]=doc3Time;
touchedline[3]=doc4Time;
touchedline[4]=doc5Time;
touchedline[5]=doc6Time;
touchedline[6]=doc7Time;
touchedline[7]=doc8Time;
touchedline[8]=doc9Time;
touchedline[9]=doc10Time;


    for(int i=0;i<10;i++)
    {
        if(touchedline[i]>temp)
        temp=touchedline[i]; 
    }
 

doc1Time, doc2Time, doc3Time, ...etc. são a data/hora

com esta fórmula eu consegui o último tempo tocado mas não o número do conjunto de objetos usados... como eu poderia saber exatamente a últimalinha de toque[x] usada?

Preciso saber qual objeto é o valor mais alto,touchedline[0] outouchedline[1] outouchedline[3] etc.

Obrigado pelo apoio.

doc

 
dr.house7:

Esta é exatamente a resposta que eu estava procurando, obrigado Ange!

p.s.

Eu sempre codifiquei de graça, no fórum tsd

Todos são livres para codificar de graça

Mas a tradição no fórum mql4.com e mql5.com é ajudar as pessoas que compartilham seu código e mostram suas tentativas.

   ...
   int highest=-1;

   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp)
        {
         highest=i;
         temp=touchedline[i];
        }
     }

Isto lhe dará o índice do valor mais alto, e o "mais próximo à hora atual", desde que todos os valores da linha de toque[] da data sejam inferiores à hora atual.

Você também pode usar o ArrayMaximum().

 
angevoyageur:

Todos são livres para codificar de graça

Mas a tradição no fórum mql4.com e mql5.com é ajudar as pessoas que compartilham seu código e mostram suas tentativas.

Isto lhe dará o índice do valor mais alto, e o "mais próximo à hora atual", desde que todos os valores da linha de toque[] da data sejam inferiores à hora atual.

Você também pode usar o ArrayMaximum().

:D

Muito obrigado...usei"int highest=0;" em minha tentativa anterior, esse foi o meu problema.

Tenha um bom fim de semana!

doc

 
angevoyageur:

Todos são livres para codificar de graça

Mas a tradição no fórum mql4.com e mql5.com é ajudar as pessoas que compartilham seu código e mostram suas tentativas.

Isto lhe dará o índice do valor mais alto, e o "mais próximo à hora atual", desde que todos os valores da linha de toque[] da data sejam inferiores à hora atual.

Você também pode usar o ArrayMaximum().

Bom dia e bom domingo!

Espero que você possa me guiar da maneira correta novamente... Preciso obter o"mais alto" anteriornão apenas o atual, como eu poderia proceder?

Obrigado por qualquer ajuda.

doc

 
dr.house7:

Bom dia e bom domingo!

Espero que você possa me guiar da maneira correta novamente... Preciso obter o"mais alto" anteriornão apenas o atual, como eu poderia proceder?

Obrigado por qualquer ajuda.

doc

Algo assim ?

   ...
   int highest=-1,previousHighest=-1;

   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp)
        {
         previousHighest=highest;
         highest=i;
         temp=touchedline[i];
        }
     }
Apenas uma solução entre outras.
 
angevoyageur:

Algo assim ?

Apenas uma solução entre outras.

muito obrigado, funciona como um encanto!

mas é um pouco estranho de se entender :)