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

WinDev Discussion :

Conversion d'une durée


Sujet :

WinDev

  1. #1
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut Conversion d'une durée
    J'ai fait un code qui est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aze est une Date = DateHeureDifférence(LIB_Libellé7,DateSys()+HeureSys())
    Jusqu'ici tout va bien ( les format correspondent, ...)
    Seul souci j'ai beau me casser la tête

    Je n'arrive pas à obtenir le resultat de mon code en Centiéme de seconde (uniquement), J'ai essayé DateVersChaine() et encore d'autre mais cela ne me convient pas
    Si la solution est simple tant mieux je me serai mal débrouillé
    Encore merci pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    aze est une Chaîne= DateHeureDifférence(LIB_Libellé7,DateSys()+HeureSys())
    Champ1 = Milieu(aze, 15, 2) + "centièmes de seconde")
    la fonction DateHeureDifférence() retourne une chaine pas une date.

    A+

  3. #3
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    Bonjour !

    Je vais poser ma question autrement,

    J'ai une date d'inscription et la date (et l'heure) systéme

    Je voudrai le nombre de seconde qui s'est écouler entre ses 2 dates pour qu'après
    1 seconde = 1 point (pour le membre)

    Si je me suis mal exprimé, faite moi le savoir...
    Encore merci pour votre aide

    PS : Le nombre de seconde ou de centiéme de seconde

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    En reprenant mon code modifié ça devrait fonctionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    TempPasse est une Durée
    aze est une Chaîne
    point est un réel // ou un entier
    aze = DateHeureDifférence(LIB_Libellé7,DateSys()+HeureSys())
    TempPasse= ChaîneVersDurée(aze, duréeCentième)
    point = Val(TempPasse) / 100
    // ou
    point = Val(TempPassee..Seconde)
    En espèrant que ça marche

    A+

  5. #5
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    Cela fonctionne assez bien
    Mais :
    Un membre inscrit depuis même pas 10min à déjà 1 900 000 point
    Tandis qu'un membre inscrit depuis 5 jour n'a que 41 000 000 de points
    ( Bizare ) c'est environ ce que je veux

    On va faire plus simple, Comment peut on trouver le nombre de seconde entre 2 date ?
    aprés je me débrouillerai ( de multiplier les secondes par le cota de point )

    Attention quand je dis le nombre de seconde
    ce n'est pas de 1 à 59, mais de types entier (normal)
    ex : Entre 13/03/08 19:26:42
    Et 13/03/08 19:28:32
    Il y a 110 secondes

    merci tout de même.

  6. #6
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    J'ai trouvé Un membre qui s'inscrit à 20heure comme la date d'incription est considéré comme être à minuit alors le membre à 20 000 000 de points
    donc s'il s'inscrit à 23:59 cd'est tout benef...

  7. #7
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    Désormais j'ai mis l'heure d'inscription, et j'ai un autre probléme car voici l'évolution des points

    1 seconde ==> point = 1
    32 secondes ==> point = 32
    59 secondes ==> point = 59
    62 secondes ==> point = 102 ( et ce n'est pas 102 que je veux mais 62 )

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    nbsec = (j*24*3600) + (H*3600) + (m*60) + s
    c'est de l'algo élémentaire, aucun rapport avec Windev

  9. #9
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    Voici mon code mais cela ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TempPasse est une Durée
    aze est une Durée
    Point est une chaîne
    aze = DateHeureDifférence(SAI_Saisie5+SAI_Saisie6,DateSys()+HeureSys()+00)
    j est une Durée = aze..Jour*24*3600
    HH est une Durée = aze..Heure*3600
    MM est une Durée = aze..Minute*60
    s est une Durée = aze..Seconde*1
    TempPasse = j+HH+MM+s
    Point = TempPasse

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Si tu prenais la peine de regarder l'aide des fonctions avant de les utiliser tu aurais vu que :
    • DateHeureDifférence () retrourne une chaîne, pas une durée
    • qu'il y a deux exemples pour faire ce que tu demandes

  11. #11
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Guardian Voir le message
    Si tu prenais la peine de regarder l'aide
    c'est ce que j'ai fait, mais je n'ai pas trouvé la bonne fonction, ou alors je perd la boule...

  12. #12
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    c'est 2 exemple ne sont fait qu'en durée !!!

    ex: x jour x heures x minutes

    tandis que ce que je veux ce sont le nombre de secondes entre 2 dates ( non jusqu'à 60 max, mais pouvant allez à l'infini...)

    merci.

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Je sais, mais tu as toutes les informations utiles pour faire ton code.
    Calcul de la durée entre deux dates
    Conversions jours, heures, minutes, secondes
    Etc.

  14. #14
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    la fonction de convertion n'est pas disponible pour les unités de temps
    et lorsque que je le fais il me dis qu'il est interdit de convertir une durée en 1 numérique.

    Convertit une valeur d'une unité dans une autre.

    Les conversions possibles sont :

    • conversions d'angles
    • conversions de masses
    • conversions de température
    • conversions d'énergie
    • conversions de force
    • conversions de longueur
    • conversions de vitesses
    • conversions de surfaces (ou d'aires)
    • conversions de volumes
    • conversions de consommation
    • conversion de pression
    • conversion de puissance
    • conversion de magnétisme

  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Je te parle des exemples fournis dans l'aide de la fonction DateHeureDifférence ()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Temps écoulé depuis le 01/01/1998 à 12h15
    Diff est une chaîne
    Diff = DateHeureDifférence ("199801011215", DateSys()+HeureSys())
    // Affichage temps écoulé
    Info("Temps écoulé : " + RC + ...
        Gauche(Diff, 8) + "jours" + RC + ...
        Milieu(Diff, 9, 2) + "heures" + RC + ...
        Milieu(Diff, 11, 2) + "minutes" + RC + ...
        Milieu(Diff, 13, 2) + "secondes" + RC + ...
        Milieu(Diff, 15, 2) + "centièmes de seconde")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Pour remplir une durée à partir du résultat de DateHeureDifférence
    Diff est une chaîne = DateHeureDifference ("199801011215", DateSys()+HeureSys())
    // convertir la différence dans une variable de type durée
    Durée est une Durée = ChaineVersDurée(Diff, duréeCentième )
    // Affichage temps écoulé
    Info("Temps écoulé : " + Durée..Jour + "jours" + RC + …
        Durée..Heure + "heures" + RC + ...
        Durée..Minute + "minutes" + RC + ...
        Durée..Seconde + "secondes" + RC + ...
        Durée..Milliseconde + "millièmes de seconde")
    Avec ça tu dois pouvoir convertir en seconde la durée entre deux dates.

  16. #16
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    Le resultat de ces codes seront sous la forme de JHHMMSSLLL
    je n'aurai pas le nombre de seconde ???
    ATTENTION, quand je dis le nombre de seconde je parle de 100s au lieu de 1m40s !!!

  17. #17
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    J'ai bien compris ce que vous voulez.
    Il suffit d'adapter ce code simple à vos besoins.

    Hors déclaration de variables, ça fait maximum 3 lignes de code pour convertir une différence entre deux date/heure en un nombre de secondes.

  18. #18
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    D'accord mais je ne connais pas de fonction pour faire cela ???
    Le code que vous m'aviez doner était intéressant mais il n'y avait pas moyen d'executer le calcul à cause des erreurs de types des variables

    Citation Envoyé par Guardian Voir le message
    nbsec = (j*24*3600) + (H*3600) + (m*60) + s
    c'est de l'algo élémentaire, aucun rapport avec Windev

  19. #19
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Citation Envoyé par sleen Voir le message
    D'accord mais je ne connais pas de fonction pour faire cela ???
    Les fonctions sont dans le second exemple : (pourquoi ai-je le sentiment de me répéter ?)
    DateHeureDifference ()
    ChaineVersDurée()

  20. #20
    Membre du Club Avatar de sleen
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Guardian Voir le message
    (pourquoi ai-je le sentiment de me répéter ?)
    Malgré l'incapacité que j'éprouve à tout englober du premier coup, le fait que tu te sois répéter ma bien aidé

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Conversion d'une durée en date
    Par Le p'tit Nicolas dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 21/03/2012, 10h54
  2. conversion d'une durée en hh:mm:ss
    Par marcusien dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/02/2007, 22h09
  3. Conversion d'une requête SQL en VBA
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 26/10/2004, 18h33
  4. Conversion d'une chaine de char en numerique
    Par simone.51 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 25/03/2004, 17h47
  5. Formater une durée sous la forme Heure:Minute:Seconde
    Par marsupile dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/02/2004, 00h29

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