Bonsoir,

Merci de m'aider à faire mieux, j'ai pas tout compris et ma solution n'est pas optimum :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
typedef struct s_nmea {
	struct  tm tv;
	time_t  now;	
} t_nmea;
 
t_nmea nmea;
 
 
nmea.tv=rmc.tv;
nmea.now=mktime(&rmc.tv);
nmea.tv.tm_yday=((struct tm *)(gmtime(&nmea.now)))->tm_yday;
/* ou mieux quand on est pas fatigué */
nmea.tv.tm_yday=gmtime(&nmea.now)->tm_yday;
La trame d'origine contient les jour, mois, année, heure, minute et seconde, mais pas le jour de l'année.
Par les deux fonctions, mktime et gmtime, j'obtiens ainsi le jour de l'année facilement.
Mais comme nmea.tv n'est pas un pointeur, je ne peux pas lui affecter directement le résultat de gmtime et passer une structure pointée dans la structure fixe.

Ce que j'ai fait fonctionne, mais bof.

Auriez-vous mieux (surement) à me proposer ?

Merci pour votre aide.

Edit :
Je m'auto-réponds, très fatigué hier soir !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
nmea.now=mktime(&rmc.tv);
nmea.tv=*gmtime(&nmea.now);