Esp32 conversion tableau int

Bonjour à tous,
Encore un problème sur lequel je sèche !
J'ai un tableau int [3][8] qui contient :

int TabEvt [3][8] =
{
  {8, 20, 8, 25, 8, 21, 8, 27},
  {8, 00, 00, 00, 00, 00, 00, 00},
  {13, 00, 13, 40, 13, 45, 13, 50}
};

Ce tableau comporte dans l'ordre "heure, minute,heure,minute" etc...
je cherche un moyen pour obtenir dans une autre chaine la concaténation "heure et minute" de manière à obtenir depuis le premier tableau dans la seconde chaine TabH :

int TabH[12]=
{
{0820,0825,0821,0827,0800;0000,0000,0000,......1350}
};

J'ai utilisé ce bout de code pour concaténer le premier tableau vers char mais impossible de repasser en int pour remplir le deuxieme tableau.

int TabH [12];         
int v1h;
int v1m;
//concatenation TabEvt en char hhmm
  v1h = TabEvt[0][0];
  v1m = TabEvt[0][1];
  sprintf(ttab,"%02d%02d",v1h,v1m);

Le but étant de pouvoir comparer heure et minute actuel avec heure et minute stocké dans le premier tableau TabEvt.
Pour les coupures secteurs ,et la reprise du programmateur horaire, il est essentiel de comparer heure et minute ensemble donc par ex 0820 à 0920 et pas 08 puis 20 à 09 puis 20.
Merci de vos lumières.

heure * 100 + minutes

Attention, on ne met pas de 0 en début de chiffre sinon ça veut dire qu’on utilise la représentation en bas huit (octal), par exemple 0800. N’existe pas car les symboles vont de zéro à sept en octal.

Vous voulez un int ou une chaîne de caractères ?


Sinon vous devriez créer une structure

struct Moment {
  byte heure;
  byte minute;
};

Et ensuite vous avez un tableau de Moments

Moment TabEvt [][4] = {
  {{8, 20}, {8, 25}, {8, 21}, {8, 27}},
  {{8, 00}, {0, 0}, {0, 0}, {0, 0}},
  {{13, 0}, {13, 40}, {13, 45}, {13, 50}}
};

C’est plus lisible (et vous pourriez associer une fonction à la structure qui renvoie un format d’affichage par exemple)

Merci de votre réponse.

Effectivement, il n'y a pas de 0 avant le chiffre significatif dans ma table, c'était pour la représentation.

Oui, je travaille avec des tables int.
Je prend en compte les pistes que vous proposez au moyen d'une structure.

Encore merci.

Astucieux, ça marche ! :smiley:

Merci

Vous pouvez aussi utiliser le nombre de minutes depuis minuit, soit 60xheure + minute

Si vous voulez faire des différences qui représentent un vrai temps (le nombre de minutes entre deux moments) c’est mieux que x100