IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Webi Discussion :

Conversion d'un numérique en heures et minutes [Vxi3]


Sujet :

Webi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Points : 6
    Points
    6
    Par défaut Conversion d'un numérique en heures et minutes
    Bonjour à tous!

    Voici mon problème: je dois convertir des compteurs d'heures de formation de mon service.

    Le souci qui se pose à moi est que ces compteurs sont sous forme décimale. J'essaie donc de convertir par exemple 35,33 en 35:20. 35 représentant le total d'heures et 33 les minutes.
    Je précise que l'objet sur lequel porterait la variable est une dimension.

    Merci d'avance pour votre aide!
    PS: Je suis nouveau sur ce forum, si ce sujet n'a pas sa place ici ou s'il a déjà été évoqué je m'excuse auprès des admins.

  2. #2
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    Je propose la solution suivante, qui doit passer je pense, mais il y'a peut être meilleur... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    abs(tonchamp)||":"||droite("0"||round(nvl(to_number(droite(round(tonchamp,2),2))*(60/100),0),0),2)
    Explications :
    = les heures
    = le séparateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    droite("0"||round(nvl(to_number(droite(round(tonchamp,2),2))*(60/100),0),0),2)
    = les minutes

    Pour les minutes :

    Je prends un exemple : 0.1148 heure

    J'arrondis au centième le champ pour avoir au plus 2 décimales : 0.11 heure

    J'isole la partie décimale que je multiplie par 60/100 : me renvoie un nombre à maximum 2 chiffres + éventuellement des décimales. J'arrondis pour ne récupérer que l'entier (abs ne fonctionne pas pour décimale supérieure à 5). : 0.11 * (60/100) = 6,6 => me renvoie 7
    Je colle mon "0" à mon 7 => "07"

    Si je n'ai pas de minutes dans mon champ de départ : mon nvl prend le relai et me renvoie 0 (à la place de 7)
    Si je n'ai pas 7 mais 15 (par exemple); J'obtiens 015 une fois le 0 collé => mon droite prend le relai et je prends uniquement "15"

    Je pense couvrir tous les cas...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse!

    Le souci déjà c'est que l'éditeur de variable Webi ne reconnait pas le caractère ||...

    J'avais pensé en première instance créer une variable pour passer mon objet en chaîne de caractère et ensuite refaire une variable sur celle-ci en faisant:

    Gauche([variable en caractère]; 2)+":"+((Droite([variable en caractère]; 2)/100)*60). Enfin quelque chose dans le genre.

    Cependant je n'arrive pas à reproduire mon objet en chaîne de caractère avec Format de nombre. Je ne sais pas quoi mettre après le ";" pour reproduire 35,33 => FormatDeNombre([monobjet]; "????").

  4. #4
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    Ah mince !
    Je donnais une solution pour le designer...!
    Je vais devoir repartir de 0 alors ?

    Tu es sur quelle version ?
    Tu ne peux pas le faire sous le designer ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Julien59 Voir le message
    Ah mince !
    Je donnais une solution pour le designer...!
    Je vais devoir repartir de 0 alors ?

    Tu es sur quelle version ?
    Tu ne peux pas le faire sous le designer ?

    Ah ah je m'en doutais... Si seulement j'avais accès au Designer... mais hélas, non.
    Je suis sous Webi Xi3.

  6. #6
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Bonjour,

    Tu peux essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =FormatDeNombre(Tronque([Nombre],0),"0")&"h"&FormatDeNombre(Tronque(((([Nombre]-Tronque([Nombre],0))*600)/10),0),"00")&"m"&FormatDeNombre(Mod((([Nombre]-Tronque([Nombre],0))*600),10),"00")&"s"
    EDIT : Attention, je crois que j'ai fait un micmac entre les syntaxes WebI et DeskI... Donc, si ça te renvoie une erreur, essaies la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =FormatDeNombre(Tronque([Nombre];0);'0')&'h'&FormatDeNombre(Tronque(((([Nombre]-Tronque([Nombre];0))*600)/10);0);'00')&'m'&FormatDeNombre(Mod((([Nombre]-Tronque([Nombre];0))*600);10);'00')&'s'

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Merci messieurs!

    Ca fonctionne! La syntaxe exacte étant sous Webi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =FormatDeNombre(Tronquer([monobjet];0);"0")+"h"+FormatDeNombre(Tronquer(((([monobjet]-Tronquer([monobjet];0))*600)/10);0);"00")+"m"
    Belle variable!
    Merci du coup de main!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion de minutes en heures et minutes
    Par Polux000 dans le forum Général Java
    Réponses: 1
    Dernier message: 05/03/2009, 10h59
  2. Conversion de minute en jours, heures et minute
    Par RobertP dans le forum Langage
    Réponses: 1
    Dernier message: 09/10/2008, 15h57
  3. Réponses: 1
    Dernier message: 09/06/2008, 14h34
  4. Conversion numerique en heure et minute
    Par Renardo dans le forum Access
    Réponses: 2
    Dernier message: 24/09/2006, 17h24
  5. Conversion des heures en minutes
    Par lacrevette dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/02/2005, 17h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo