#1 Thu 15 June 2023 08:41
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
QGIS: Probl conversion decimal en heure
Bonjour,
Dans mon projet je souhaiterais convertir un décimal que j'obtiens en résultat d'une formule mais je n'y parvient pas.
J'ai essayé les formules suivante "to_time" et "format_date" et à chaque fois j'ai la même erreur à savoir: "Erreur d'évaluation: Impossible de convertir 'valeur' en DateTime".
Quelqu'un aurait une idée svp?
Dernière modification par Blast35 (Thu 15 June 2023 08:42)
Hors ligne
#2 Thu 15 June 2023 09:43
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: Probl conversion decimal en heure
Bonjour
Un exemple plus parlant ne serait pas de trop, car je ne vois pas votre raisonnement.
Souhaitez vous convertir 7.5 en 7h30.
Cordialement
Hors ligne
#3 Thu 15 June 2023 09:44
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS: Probl conversion decimal en heure
to_time est décrite dans le manuel
page 247 du manuel QGis 3.28
https://docs.qgis.org/3.28/pdf/fr/
et format_date pages 250 et 251
Votre nombre décimal a quelle tronche ? Il démarre à quelle origine temporelle ? (c'est un intervalle de temps, par exemple 8,7 heures à transformer en 8 h 42 minutes ??)
Auquel cas ça doit être une autre fonction présentée dans ce chapitre-là du guide qu'il faut utiliser.
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#4 Thu 15 June 2023 09:47
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS: Probl conversion decimal en heure
PS J'espère que vous suivrez mieux votre question que celle que vous aviez posée en février ( https://georezo.net/forum/viewtopic.php … 57#p358157 ).
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#5 Thu 15 June 2023 10:14
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
Bonjour
Un exemple plus parlant ne serait pas de trop, car je ne vois pas votre raisonnement.
Souhaitez vous convertir 7.5 en 7h30.
Cordialement
oui c'est bien l'objectif
Hors ligne
#6 Thu 15 June 2023 10:20
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
m
Dernière modification par Blast35 (Thu 15 June 2023 10:25)
Hors ligne
#7 Thu 15 June 2023 10:24
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
to_time est décrite dans le manuel
page 247 du manuel QGis 3.28
https://docs.qgis.org/3.28/pdf/fr/
et format_date pages 250 et 251
Votre nombre décimal a quelle tronche ? Il démarre à quelle origine temporelle ? (c'est un intervalle de temps, par exemple 8,7 heures à transformer en 8 h 42 minutes ??)
Auquel cas ça doit être une autre fonction présentée dans ce chapitre-là du guide qu'il faut utiliser.
J'ai bien regardé ces différents guides oui mais sans succès
le nombre est le résulat d'un calcul de temps de rendement:
une surface/le rendement en surface d'une machine a l'heure=heure en décimal
c'est l'heure en décimal que je voudrais voir apparaitre en format hh:mm
Hors ligne
#8 Thu 15 June 2023 10:37
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
Pour être plus clair...
la formule : to_time( round( "Surface" / "Tabl_Rendement a l’heure (m²)" ,2),'H:mm')
Hors ligne
#9 Thu 15 June 2023 10:49
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS: Probl conversion decimal en heure
Pourquoi arrondir ?
Relisez les exemples donnés page 247 pour voir ce que to_time fait.
Vous, il vous faut ce que Vincent vous a expliqué. Heure décimale en heures minutes.
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#10 Thu 15 June 2023 10:54
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
Pourquoi arrondir ?
Relisez les exemples donnés page 247 pour voir ce que to_time fait.
Vous, il vous faut ce que Vincent vous a expliqué. Heure décimale en heures minutes.
je pensait qu'au départ le problème venait des décimal a rallonge mais ca change rien
les exemples marchent bien
tout à fait heure en décimal vers heures "normal"
Dernière modification par Blast35 (Thu 15 June 2023 10:55)
Hors ligne
#11 Thu 15 June 2023 10:58
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS: Probl conversion decimal en heure
Peut-être qu'il faut créer une fonction personnalisée si ça n'existe pas dans QGis une fonction qui prend une heure décimale et la convertit en h et minutes, ce que j''écris en pseudo-code ainsi :
nombreH = arrondi (heure_decimale)
minutes_decimales = heure_decimale - nombreH
minutes_sexagesimales = 60 x minutes_decimales
nombreMinutes = arrondi (minutes_sexagesimales)
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#12 Thu 15 June 2023 11:19
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
Peut-être qu'il faut créer une fonction personnalisée si ça n'existe pas dans QGis une fonction qui prend une heure décimale et la convertit en h et minutes, ce que j''écris en pseudo-code ainsi :
nombreH = arrondi (heure_decimale)
minutes_decimales = heure_decimale - nombreH
minutes_sexagesimales = 60 x minutes_decimales
nombreMinutes = arrondi (minutes_sexagesimales)
l'idée a l'air intéressante mais je ne maitrise pas le codage, je doit rentrer çà a quel niveau?
Hors ligne
#13 Thu 15 June 2023 11:28
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS: Probl conversion decimal en heure
Aparté : en attendant que des systèmes d'intelligence artificielle comme ChatGPT pondent eux-mêmes tout seuls le code, je vous conseille de vous intéresser à apprendre la programmation ou le codage.
Peut-être qu'avec un bon prompt, vous pouvez essayer de demander au robot ChatGPT : comment convertir des heures décimales en heures et minutes sexagésimales dans QGis ?
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#14 Thu 15 June 2023 11:35
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
si quelqu'un a une autre idée...
Hors ligne
#15 Thu 15 June 2023 11:42
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
Vincent Vauchey a écrit:Bonjour
Un exemple plus parlant ne serait pas de trop, car je ne vois pas votre raisonnement.
Souhaitez vous convertir 7.5 en 7h30.
Cordialement
oui c'est bien l'objectif
Peut-être que vous pensiez à quelque chose?
Hors ligne
#16 Thu 15 June 2023 11:57
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS: Probl conversion decimal en heure
Il pense la même chose que moi.
7 = arrondi (7,5)
7,5 - arrondi (7,5) = 7,5 - 7 = 0,5
0,5 x 60 = 30
donc 7,5 heures devient 7 heures 30 minutes
Un peu comme dans le sketch du fakir, je pense que vous pouvez le faire vous aussi. Tout restant dans le domaine de ce possible.
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#17 Thu 15 June 2023 13:41
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
c'est du chinois pour moi...
Hors ligne
#18 Thu 15 June 2023 14:05
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: Probl conversion decimal en heure
Ne serait il pas possible d'avoir directement des heures non décimales, ce qui rendrait l'opération plus simple.
Vincent
Dernière modification par Vincent Vauchey (Thu 15 June 2023 14:05)
Hors ligne
#19 Thu 15 June 2023 14:16
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
Ne serait il pas possible d'avoir directement des heures non décimales, ce qui rendrait l'opération plus simple.
Vincent
oui, je crois bien que ca va finir comme ca
Hors ligne
#20 Thu 15 June 2023 14:29
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3940
Re: QGIS: Probl conversion decimal en heure
Bonjour,
Voici une application de la suggestion de Pascal, qui est classiquement la façon dont à l'école on nous faisait convertir des décimaux en temps.
Je ne me suis pas embêté à gérer le cas où ça prend plus d'une journée, je vous laisserais juger de la pertinence, mais la logique resterait la même. Et surtout n'hésitez pas à lire la description de chacune des fonctions en jeu pour mieux cerner leur usage.
Code:
with_variable( 'tempsdecimal', -- on crée une variable qui stocke le résultat du calcul "Surface" / "Tabl_Rendement a l’heure (m²)" , concat( -- on assemble les différentes parties pour en faire du texte en sortie floor(@tempsdecimal), -- on prend la partie entière 'h ', lpad(-- juste histoire de s'assurer d'avoir 7h 08mn et non 7h 8mn round( (@tempsdecimal - floor(@tempsdecimal))*60 -- on convertit la partie décimale en minutes ), 2, 0 ), 'mn' ) )
[EDIT] PS: le code ci-dessus renvoie des valeurs de type texte, pas de type time. Des fois que vous devez réutiliser la sortie dans quelque chose qui attend des valeurs temporelles, il vous faudrait revoir un peu la concatenation et ajouter une surcouche de conversion to_time.
Dernière modification par SANTANNA (Thu 15 June 2023 14:53)
Hors ligne
#21 Thu 15 June 2023 14:44
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS: Probl conversion decimal en heure
Blast35, sans rire, il faut absolument que tu te mettes à t'intéresser au code.
Moi j'ai 55 ans, je serai peut-être rattrapé par la patrouille de l'IA avant de prendre ma retraite (dans 12 ans), mais les jeunes ont intérêt à apprendre à maitriser les algorithmes.
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#22 Thu 15 June 2023 15:28
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
Bonjour,
Voici une application de la suggestion de Pascal, qui est classiquement la façon dont à l'école on nous faisait convertir des décimaux en temps.
Je ne me suis pas embêté à gérer le cas où ça prend plus d'une journée, je vous laisserais juger de la pertinence, mais la logique resterait la même. Et surtout n'hésitez pas à lire la description de chacune des fonctions en jeu pour mieux cerner leur usage.Code:
with_variable( 'tempsdecimal', -- on crée une variable qui stocke le résultat du calcul "Surface" / "Tabl_Rendement a l’heure (m²)" , concat( -- on assemble les différentes parties pour en faire du texte en sortie floor(@tempsdecimal), -- on prend la partie entière 'h ', lpad(-- juste histoire de s'assurer d'avoir 7h 08mn et non 7h 8mn round( (@tempsdecimal - floor(@tempsdecimal))*60 -- on convertit la partie décimale en minutes ), 2, 0 ), 'mn' ) )[EDIT] PS: le code ci-dessus renvoie des valeurs de type texte, pas de type time. Des fois que vous devez réutiliser la sortie dans quelque chose qui attend des valeurs temporelles, il vous faudrait revoir un peu la concatenation et ajouter une surcouche de conversion to_time.
C'est très gentil merci
Hors ligne
#23 Thu 15 June 2023 15:31
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
Blast35, sans rire, il faut absolument que tu te mettes à t'intéresser au code.
Moi j'ai 55 ans, je serai peut-être rattrapé par la patrouille de l'IA avant de prendre ma retraite (dans 12 ans), mais les jeunes ont intérêt à apprendre à maitriser les algorithmes.
C'est pas vraiment dans mes plans, il s'agissait en l’occurrence d'un travail ponctuel... mais très intéressant
Hors ligne
#24 Thu 15 June 2023 15:35
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Probl conversion decimal en heure
je serai peut-être rattrapé par la patrouille de l'IA [...] mais les jeunes ont intérêt à apprendre à maitriser les algorithmes
Plus besoin : l'IA leur écrit les formules directement :
https://chat.openai.com/share/400ebee7- … df622b2bb0
Et du coup, voici une solution (proche de celle de SANTANNA) qui fonctionne bien :
Code:
format_number(floor("duree_decimale"),0) || ':' || format_number(("duree_decimale" % 1) * 60,0)
(en considérant que la "durée décimale" soit stoquée dans un champ, mais on peut la calculer via la formule)
Sylvain M.
Hors ligne
#25 Thu 15 June 2023 15:40
- Blast35
- Participant occasionnel
- Date d'inscription: 1 Feb 2023
- Messages: 15
Re: QGIS: Probl conversion decimal en heure
Merci a tous! Je m'en suis sorti en restant en décimal, bien que ce ne soit pas parfait je m'en satisferai.
En espérant que ca puisse servir à d'autres...
Comment je clos le sujet?
Hors ligne
#26 Thu 15 June 2023 16:10
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3940
Re: QGIS: Probl conversion decimal en heure
Plus besoin : l'IA leur écrit les formules directement wink :
https://chat.openai.com/share/400ebee7- … df622b2bb0
Jusqu'à ce que le modèle économique du "je pose la question gratos" passe en payant et que peu d'entre eux puissent se dépatouiller sans l'IA. J'exagère peut-être?
Mais bon, je dois reconnaitre que le code est propre. Le %1, il fallait y penser. Un raisonnement de machine, quoi
Par contre, j'ai bien aimé lire la retranscription de l'échange à https://chat.openai.com/share/a76aaf54- … 6642a41ba6 (vu à l'origine à https://georezo.net/forum/viewtopic.php … 0#p360900)
Comment je clos le sujet?
Pas nécessaire.
Hors ligne