Convertir une heure format décimal en format 60 minutes

Forum destiné aux problèmes de Tags, recherche d’une fonction, d’un calcul, Tag qui parait ne pas fonctionner, du Tag et rien que du Tag !
Répondre
Neutre
Participation 2
Participation 2
Messages : 136
Enregistré le : 20 avr. 2008, 09:29
Localisation : Les Vans (Ardèche)
Contact :

Convertir une heure format décimal en format 60 minutes

Message par Neutre » 26 avr. 2008, 10:46

Bonjour,

Je voudrai afficher l'heure "vraie" par rapport au soleil. Je crois que je m'en suis tiré mais je ne sais pas repasser de l'heure que j'ai calculé en calculée en décimale à l'heure en format sexagésimal.

Ai-je loupé le bon tag ?

Jean

Avatar du membre
chriss
Participation 5
Participation 5
Messages : 946
Enregistré le : 31 mai 2007, 16:30
Localisation : Plévenon (22)
Contact :

Message par chriss » 26 avr. 2008, 11:59

Qu'entends-tu par heure "vraie" ? Il existe peut-être un tag tout fait pour cette heure.
Mais sinon voici le tag de conversion:
%ws_setmem[3]=heure-décimale%
%ws_setmem[4]=%ws_cutstr=0~3~%ws_getmem[3]%%%
%ws_setmem[5]=%ws_calc[-]=%ws_getmem[3]%~%ws_getmem[4]%~2%%
%ws_setmem[6]=%ws_calc[*]=%ws_getmem[5]%~60~0%%
%ws_setmem[11]=%ws_compare[5]=%ws_getmem[6]%~10~0%ws_getmem[6]%~%ws_getmem[6]%%%
%ws_setmem[13]=%ws_getmem[4]%:%ws_getmem[11]%%

Neutre
Participation 2
Participation 2
Messages : 136
Enregistré le : 20 avr. 2008, 09:29
Localisation : Les Vans (Ardèche)
Contact :

Message par Neutre » 26 avr. 2008, 13:59

L'idée est donner l'heure qu''il serait si midi était l'heure au moment où le soleil est exactement à son zénith. Par exemple pour Paris, le zénith du soleil est à 13h48. Donc à 13h48, il est exactement midi à l'heure du soleil. A 14h, il serait 12h12.....

Je ne sais pas si je suis très clair !

Jean

Neutre
Participation 2
Participation 2
Messages : 136
Enregistré le : 20 avr. 2008, 09:29
Localisation : Les Vans (Ardèche)
Contact :

Message par Neutre » 26 avr. 2008, 14:47

Merci Chriss !
Le tag fonctionne. Juste un problème que je n'arrive pas à éliminer : une virgule apparait après le nombre de l'heure (ex : 13,:42)

Le code est le suivant :

%unit_off%
%ws_setmem[1]=%ws_timetoval[%ws_time%]%%
%ws_setmem[2]=%ws_timetoval[%ws_suntransit%]%%
%ws_setmem[3]=%ws_calc[-]=12~%ws_getmem[2]%~3%%
%ws_setmem[4]=%ws_calc[+]=%ws_getmem[1]%~%ws_getmem[3]%~3%%

%ws_setmem[5]=%ws_getmem[4]%%
%ws_setmem[6]=%ws_cutstr=0~3~%ws_getmem[5]%%%
%ws_setmem[7]=%ws_calc[-]=%ws_getmem[5]%~%ws_getmem[6]%~2%%
%ws_setmem[8]=%ws_calc[*]=%ws_getmem[7]%~60~0%%
%ws_setmem[9]=%ws_compare[5]=%ws_getmem[8]%~10~0%ws_getmem[8]%~%ws_getmem[8]%%%
%ws_setmem[10]=%ws_getmem[6]%:%ws_getmem[9]%%
%unit_on%

Et je n'arrive pas à voir où j'ai fait l'erreur ! Votre œil exercé voit-il quelque chose ?

Jean,

Avatar du membre
chriss
Participation 5
Participation 5
Messages : 946
Enregistré le : 31 mai 2007, 16:30
Localisation : Plévenon (22)
Contact :

Message par chriss » 26 avr. 2008, 18:05

%ws_setmem[6]=%ws_cutstr=0~3~%ws_getmem[5]%%%
à remplaçer par
%ws_setmem[6]=%ws_cutstr=0~4~%ws_getmem[5]%%%

Neutre
Participation 2
Participation 2
Messages : 136
Enregistré le : 20 avr. 2008, 09:29
Localisation : Les Vans (Ardèche)
Contact :

Message par Neutre » 26 avr. 2008, 18:25

Merci Chriss,
Le tag fonctionne désormais parfaitement comme on peut le voir sur mon site. Je vais essayer de décortiquer le code pour mieux le comprendre.
Jean

Avatar du membre
chriss
Participation 5
Participation 5
Messages : 946
Enregistré le : 31 mai 2007, 16:30
Localisation : Plévenon (22)
Contact :

Message par chriss » 26 avr. 2008, 18:35

Je vais t'expliquer:

%ws_setmem[5]=%ws_getmem[4]%%
%ws_setmem[6]=%ws_cutstr=0~3~%ws_getmem[5]%%% // on récupère que l'heure sans les décimales

%ws_setmem[7]=%ws_calc[-]=%ws_getmem[5]%~%ws_getmem[6]%~2%% // on soustrait cette heure à l'heure décimale pour obtneir les minutes.

%ws_setmem[8]=%ws_calc[*]=%ws_getmem[7]%~60~0%% // on convertit ces minutes en minutes conventionnelles (base 60) par une simple multiplication par 60

%ws_setmem[9]=%ws_compare[5]=%ws_getmem[8]%~10~0%ws_getmem[8]%~%ws_getmem[8]%%% //Si ces minutes sont inf. à 10 on ajoute le 0 devant (convention d'écriture) pour donner par exemple 15:05 au lieu de 15:5

%ws_setmem[10]=%ws_getmem[6]%:%ws_getmem[9]%% // on récupère l'ensemble

Neutre
Participation 2
Participation 2
Messages : 136
Enregistré le : 20 avr. 2008, 09:29
Localisation : Les Vans (Ardèche)
Contact :

Message par Neutre » 26 avr. 2008, 19:35

C'est clair. C'est beau la pédagogie !
Si j'ai bien compris, j'aurai pu aussi faire l'économie de la première ligne :

%ws_setmem[5]=%ws_getmem[4]%%

Allez, je m'attaque à la durée du jour et à l'ensoleillement

Jean

Avatar du membre
chriss
Participation 5
Participation 5
Messages : 946
Enregistré le : 31 mai 2007, 16:30
Localisation : Plévenon (22)
Contact :

Message par chriss » 26 avr. 2008, 19:37

Exact !!
mais en remplacant:
%ws_setmem[6]=%ws_cutstr=0~4~%ws_getmem[5]%%%
par
%ws_setmem[6]=%ws_cutstr=0~4~%ws_getmem[4]%%%

Répondre