trouver la date la plus proche

 

Bonjour à tous,

J'ai 10 datetime, et je veux savoir laquelle d'entre elles est la plus proche de l'heure actuelle, quelle formule pourrais-je utiliser ?

Merci pour votre aide.

 
dr.house7:

Bonjour à tous,

J'ai 10 datetime, et je veux savoir laquelle d'entre elles est la plus proche de l'heure actuelle, quelle formule pourrais-je utiliser ?

Merci pour votre aide.

Bonjour dr.house7,

pouvez-vous nous montrer une tentative d'effort ?

Avez-vous essayé quelque chose jusqu'à présent ? Avez-vous un morceau de code à nous montrer ?

Si vous n'avez rien à montrer, alors il est préférable de chercher dans la base de code ou de poster un travail dans la section des emplois.

 
Malacarne:

Bonjour dr.house7,

pouvez-vous nous montrer une tentative d'effort ?

Avez-vous essayé quelque chose jusqu'à présent ? Avez-vous un morceau de code à nous montrer ?

Si vous n'avez rien à montrer, alors il est préférable de chercher dans la base de code ou de poster un travail dans la section des emplois.

drôle
 
dr.house7:
drôle

Salut, Mister House, pourquoi drôle ? Vous voulez un code gratuit ?

Il n'y a pas de formule directe je pense. Vos 10 dates sont-elles dans un tableau ? Créez une boucle pour comparer chaque date à l'heure actuelle et gardez la date qui est la plus proche de l'heure actuelle.

Si vous postez votre code, vous obtiendrez de l'aide, c'est sûr.

 
angevoyageur:

Salut, Mister House, pourquoi drôle ? Vous voulez un code gratuit ?

Il n'y a pas de formule directe je pense. Vos 10 dates sont-elles dans un tableau ? Créez une boucle pour comparer chaque datetime à l'heure actuelle et gardez la datetime qui est la plus proche de l'heure actuelle.

Si vous postez votre code, vous obtiendrez de l'aide, c'est sûr.

C'est exactement la réponse que j'attendais, merci Ange !

p.s.

J'ai toujours codé gratuitement sur le forum tsd.

 

ok voici le code :

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. sont des datetime

Avec cette formule, j'ai obtenu le dernier temps touché mais pas le numéro du tableau d'objets utilisé...comment pourrais-je savoir exactement le derniertouchline[x] utilisé ?

J'ai besoin de savoir quel objet a la valeur la plus élevée,touchedline[0] outouchedline[1] outouchedline[3] etc.

Merci pour votre aide

doc

 
dr.house7:

C'est exactement la réponse que je cherchais, merci Ange !

p.s.

J'ai toujours codé gratuitement sur le forum tsd.

Tout le monde est libre de coder gratuitement

Mais la tradition sur le forum mql4.com et mql5.com est d'aider les personnes qui partagent leur code et montrent leurs tentatives.

   ...
   int highest=-1;

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

Cela vous donnera l'indice de la valeur la plus élevée, et la "plus proche de l'heure actuelle" à condition que toutes les valeurs de la date touchline[] soient inférieures à l'heure actuelle.

Vous pouvez également utiliser ArrayMaximum().

 
angevoyageur:

Tout le monde est libre de coder gratuitement

Mais la tradition sur le forum mql4.com et mql5.com est d'aider les personnes qui partagent leur code et montrent leurs tentatives.

Cela vous donnera l'indice de la valeur la plus élevée, et le "plus proche de l'heure actuelle" à condition que toutes les valeurs de date touchline[] soient inférieures à l'heure actuelle.

Vous pouvez aussi utiliser ArrayMaximum().

:D

Merci beaucoup...J'ai utilisé"int highest=0;" dans mon essai précédent, c'était mon problème.

Passez un bon week-end !

doc

 
angevoyageur:

Tout le monde est libre de coder gratuitement

Mais la tradition sur le forum mql4.com et mql5.com est d'aider les personnes qui partagent leur code et montrent leurs tentatives.

Cela vous donnera l'indice de la valeur la plus élevée, et le "plus proche de l'heure actuelle" à condition que toutes les valeurs de date touchline[] soient inférieures à l'heure actuelle.

Vous pouvez également utiliser ArrayMaximum().

Bonjour et bon dimanche !

J'espère que vous pourrez me guider à nouveau dans la bonne direction... J'ai besoin d'obtenir la valeur précédente laplus élevée et pas seulement la valeur actuelle, comment puis-je procéder ?

Merci pour toute aide

doc

 
dr.house7:

Bonjour et bon dimanche !

J'espère que vous pourrez me guider à nouveau dans la bonne direction... J'ai besoin de récupérer les"plus hauts" précédentset pas seulement le courant, comment puis-je procéder ?

Merci pour toute aide

doc

Quelque chose comme ça ?

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

   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp)
        {
         previousHighest=highest;
         highest=i;
         temp=touchedline[i];
        }
     }
Seulement une solution parmi d'autres.
 
angevoyageur:

Quelque chose comme ça ?

Seulement une solution parmi d'autres.

Merci beaucoup, ça marche comme sur des roulettes !

mais c'est un peu étrange à comprendre :)

Raison: