Erreur de initialisation de structure

MissRobet Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
bonsoir,
j'ai un petit problème en c en fait j'ai besoin d'un tableau de date et j'ai quelques instructions a faire pour cette date.. d'ou j'ai besoin de lire la date en tant que des entiers donc après un petit recherche j'ai finalement décider d'utiliser la structure mais je dois initialiser les 10 premiers valeurs du tableau mais je ne sais pas comment ... j'ai essayer plusieurs méthodes que j'ai trouver dans ma recherche mais ces erreurs m'ont blocker

A voir également:

2 réponses

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,
Pour répondre, il faudrait surtout savoir comment tu as défini le type date.
Tu écris ensuite un tableau de 100 tableaux de 11 dates. On s'attend à fournir 100*11*3 paramètres du type des champs jour/mois/annee.
Pour un tableau de dates, on peut écrire :
struct date {
   unsigned char jour;            // par exemple
   unsigned char mois;
   unsigned short annee;
};
struct date tableau[3] = {{20,2,2015},{31,12,2016},{1,1,2017}};
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut MissRobet,

1.

Si tu dois comparer les dates, tu pourrais avoir intérêt à les stocker sous forme de tableau de chaînes de caractères au format "2015/02/20", c'est à dire année, mois, jour dans cet ordre. Cela te permet de comparer très simplement l'égalité de dates, ou le fait qu'une date soit antérieure ou postérieure à l'autre avec la fonction
strcmp()
accessible par
string.h
, car la comparaison lexicographique équivaut dans ce format à la comparaison de la chronologie des dates.

vois : https://en.cppreference.com/w/c/string/byte/strcmp

2.

Si tu veux pouvoir faire des choses plus complexes, comme calculer la différence entre deux dates, tu devrais utiliser les fonctions accessibles dans
time.h
pour convertir tes dates en
time_t
et utiliser
difftime()
...

Avec les fonctions accessibles dans
time.h
, tu pourras aussi déterminer le jour de la semaine, le numéro de semaine, vérifier si une date est valide, etc.

dans ce dernier cas :
- un stockage dans sous forme numérique comme proposé par Dalfab serait plus adéquat avec un tableau de struc contenant les informations de jour, mois et année sous forme d'entiers,
- ou carrément tu pourrais stocker les dates dans un tableau de
time_t
, en y stockant la conversion de ces informations (tu dois passer par une
struct tm
et utiliser
mktime()
) ...

vois : https://en.cppreference.com/w/c/chrono
0