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 :

calcul sur heure [WD20]


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 29
    Points : 26
    Points
    26
    Par défaut calcul sur heure
    bonsoir

    voila j'ai le code suivant issu d'un exemple de windev que je veut le modifier est je ne sais pas comment faire j'ai essayé tous le moyens sans issu (debutant )

    CODE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    gdDébut  = DATEDEBUT		// date au format AAAAMMJJ
    ghDébut  = HEUREDEBUT	// heure au format HHMM
    gdFin  = DATEFIN			// date au format AAAAMMJJ
    ghFin  = HEUREFIN		// heure au format HHMM
     
    // Vérification que les 4 paramètres ont bien été fournis
    // sinon on ne fait rien
    SI SansEspace(gdDébut) = "" ALORS RETOUR
    SI SansEspace(ghDébut) = "" ALORS RETOUR
    SI SansEspace(gdFin) = "" ALORS RETOUR
    SI SansEspace(ghFin) = "" ALORS RETOUR
     
    // Calculs sur dates et heures
    dhDébut,dhFin sont des DateHeure
    dhDébut..PartieDate = gdDébut	;	dhDébut..PartieHeure = ghDébut
    dhFin..PartieDate = gdFin		;	dhFin..PartieHeure = ghFin
    dDurée est une Durée = dhFin - dhDébut
    NBJOURS=dDurée..Jour
    HEUREMIN=NumériqueVersChaîne(dDurée..Heure,"02d")+NumériqueVersChaîne(dDurée..Minute,"02d")

    voila je veut soustraire 08 heur et 30 minute du resultat final



    merci pour votre aide

  2. #2
    Membre du Club Avatar de ptahsokaris
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Tout d'abord concernant la vérification des paramêtres, j'élargirais le test à la validité des dates et des heures (en effet, les paramètres peuvent être renseignés sans pour autant que la date ou l'heure soit dans un format valide)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Vérification que les 4 paramètres sont bien valide
    SI PAS DateValide(gdDébut) _OU_ PAS HeureValide(ghDébut) _OU_ PAS DateValide(gdFin) _OU_ PAS HeureValide(ghFin) ALORS RETOUR
    Pour enlever 8 heures 30 minutes, une des solutions pourrait être de stocker le résultat de la différence entre ton heure actuelle et 8h30 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    hAsoustraire est une heure ="0830"
    dDifference est une Durée = ghFin - hAsoustraire
    Il faudrait ensuite regarder ce que vaut ta durée, si elle est négative, penser à remonter le jour, sinon laisser tel quel.

    Il faudrait ensuite regarder ce que vaut ta durée, si elle est négative, penser à remonter le jour, sinon laisser tel quel.
    Est-ce que juste soustraire les 8h30 à ta DateHeure marche ? A essayer.

    "Une fois, à une exécution, je m'approche d'une fille. Pour rigoler, je lui fais : « Vous êtes de la famille du pendu ? »... C'était sa sœur. Bonjour l'approche !"

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Bonjour,

    Alors comment faire ?

    Tout d'abord (et c'est toujours bon même quand on n'est pas débutant, mais c'est certainement indispensable quand on débute), on fait une recherche sur les fonctions Windev qui concernent le problème sur lequel on travaille.
    Dans le cas présent, des heures et des dates.
    Donc, une petite recherche dans l'index alphabétique de l'aide sur les fonctions dont le nom débute par "Date" ou "Heure".
    La moisson est abondante et on y trouve les solutions à votre problème.

    Notamment, DateHeureDifférence().

    Ce qui vous amènera à travailler avec des variables de type DateHeure.
    Autrement, si vous travaillez avec une variable de type Heure ou Date, il n'y a pas lieu de travailler respectivement avec les propriétés PartieHeure ou PartieDate.
    Il faut aussi se rappeler que la différence entre deux dates, heures ou dates + heures, est une durée et qu'il existe un type de variable pour cela, le type Durée.

    Ensuite en travaillant avec DateHeureDifférence(), vous aurez une gestion automatique du retrait ou de l'ajout d'heures impliquant une bascule de date.
    Concrètement, soustraire 5 H au 17/10/2016 - 03H00 va vous ramener au 16/10/2016 - 22H00.
    Il faut donc gérer le saut de jour, ce que vous fera DateHeureDifférence().

    Juste noter que le résultat est une chaîne et qu'il faut utiliser ChaineVersDurée pour convertir ce résultat en variable de type Durée.

    Bon travail

    Hemgé

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    salut

    merci beaucoup pour vos raiponce une erreure c'est produit a : dhFin -= hAsoustraire erreur opérateur interdit
    merci pour votre aide

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Citation Envoyé par iloveubb Voir le message
    merci pour votre aide
    Bonsoir,

    A ce stade, nous ne pouvons rien d'autre pour vous que de vous inviter à lire l'aide et, sans aucun doute, à suivre le cours d'autoformation.

    Bonnes lectures et bon travail

    Hemgé

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Bonjour

    merci pour votre aide mon problème est résolue

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

Discussions similaires

  1. [WD16] Calculs sur heures
    Par RougeCitron dans le forum WinDev
    Réponses: 6
    Dernier message: 11/03/2013, 22h20
  2. calcul sur heures
    Par vincent123456 dans le forum Général Python
    Réponses: 2
    Dernier message: 22/08/2007, 16h48
  3. Problème de calcul sur heure
    Par Copernic09 dans le forum Langage
    Réponses: 8
    Dernier message: 09/05/2007, 09h47
  4. champs calculer sur heure
    Par lenul70 dans le forum Access
    Réponses: 1
    Dernier message: 09/09/2006, 22h23
  5. calcul sur des heures
    Par pascale86 dans le forum Access
    Réponses: 5
    Dernier message: 22/12/2005, 16h22

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