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 :

[windev 11] ajouter ou enlever des jours à une date


Sujet :

WinDev

  1. #1
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut [windev 11] ajouter ou enlever des jours à une date
    Bonjour,

    Je ne trouve aucune technique pour enlever ou ajouter des jours à une date ?

    Il doit forcément y avoir une fonction simple sinon ce serait un manquement énorme de PC SOFT.

    J'ai éssayé de prendre mon champ date et de faire par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dDatedepassement = DateSys
    dDatedepassement..Jour = dDatedepassement - Personnalisation.ValiditeOption
    ValiditeOption contiens un entier.

    Il me fait une erreur à l'utilisation car on ne peux pas faire '-' sur un champ de texte (mais pas d'erreur à la compil !).

    J'ai essayé aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dDatedepassement = DateSys
    dDatedepassement..Jour = dDatedepassement..Jour - Personnalisation.ValiditeOption
    Ca marche si je reste dans le mois mais aujourd'hui -5 jours ca donne... erreur : -4 n'est pas un jour valide.

    Je suis en panne d'idées pour le moment, et vous ?

  2. #2
    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
    Il y a un calcul de ce genre dans l'exemple "WD Calculs sur dates et heures"

    La fenêtre propose 6 champs couplés par 2 : Jours + HH:MM
    On a donc 3 ensembles Jours + HH:MM
    Le code calcule la somme & la moyenne des Nb jours + HH:MM
    Ça marche aussi en soustraction.
    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
    20
    21
    22
    23
    24
    25
     
    // Calculs du total et des moyennes
     
    dDuréeTot,dDuréeMoy,dDurée1,dDurée2,dDurée3 sont des Durées
     
    dDurée1..Minute	=	Val(HEUREMIN[[3 A 4]])
    dDurée1..Heure	=	Val(HEUREMIN[[1 A 2]])
    dDurée1..Jour	=	NBJOURS
     
    dDurée2..Minute	=	Val(HEUREMI_1[[3 A 4]])
    dDurée2..Heure	=	Val(HEUREMI_1[[1 A 2]])
    dDurée2..Jour	=	NBJOURS_1
     
    dDurée3..Minute	=	Val(HEUREMI_2[[3 A 4]])
    dDurée3..Heure	=	Val(HEUREMI_2[[1 A 2]])
    dDurée3..Jour	=	NBJOURS_2
     
    dDuréeTot=dDurée1+dDurée2+dDurée3
     
    // Durée Totale
    TOTAL = dDuréeTot..Jour + " jours, " + dDuréeTot..Heure + " heures et " + dDuréeTot..Minute + " minutes"
     
    // Durée Moyenne
    dDuréeMoy = dDuréeTot / 3
    MOYENNE = dDuréeMoy..Jour + " jours, " + dDuréeMoy..Heure + " heures et " + dDuréeMoy..Minute + " minutes"

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 125
    Points : 158
    Points
    158
    Par défaut
    Et un tout bête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dDatedepassement -= Personnalisation.ValiditeOption
    ca devrait fonctionner.

    Bob, de mémoire (v4).

  4. #4
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 125
    Points : 158
    Points
    158
    Par défaut
    Petit complément,

    Pour les dates, il faut travailler avec les opérateurs :
    Bob.

  5. #5
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Citation Envoyé par Grmmml
    Et un tout bête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dDatedepassement = dDatedepassement - Personnalisation.ValiditeOption
    ca devrait fonctionner. Ou alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dDatedepassement -= Personnalisation.ValiditeOption


    Bob, de mémoire.
    Justement c'est ce que j'ai essayé et ca marche pas (ou plus dans la 11).


    Quand à Guardian j'ai deja vu ce tableau sur d'autres posts mais je ne vois pas vraiment le rapport, je veux juste ajouter et enlever des jours pas faire un calcul de moyennes basé sur des champs de saisie ou une main bienveillante à saisi tout ce qu'il faut pour générer une date en string.

    La solution que ton code pourrait apporter ce serait de créer une date en chaine de caractère en mettant '0000 00 ' + 'Mon nombre de jours formaté en '00' puis de l'affecter a une date (date2) et faire Date1 - Date2.

    Effectivement ça pourrais etre une solution... a condition de surtout pas dépasser 30 jours sinon ca va planter lamentablement. Bref une usine a Gaz sera nécessaire pour gérer le passage des mois et des années.
    Et tout cela suppose qu'on peux encore faire Date1-Date2. Faudra que je teste mais c'est pas normal, il doit y avoir autre chose.

  6. #6
    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 viens de refaire un test :
    Un champ de saisie au format DATE : retourne une date au format AAAAMMJJ
    Un champ de saisie au format ENTIER
    Ceci me retourne la date du champ saisie DATE - le nombre de jour du champ saisie ENTIER
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Info(EntierVersDate(DateVersEntier(Sais_Date1)-Sais_Date2))
    15/05/2006 - 483 jours = 17/01/2005

  7. #7
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Haha, merci Guardian, je vais essayer de suite et je te dis.

    Edit : Ca marche, merci !

    Merci Bob pour les opérateurs

  8. #8
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 125
    Points : 158
    Points
    158
    Par défaut
    Si ça ne fonctionne plus, c'est une régression, faites remonter un Ticket su support technique :-)

    Avant de poster (enfin pendant le post) j'ai testé en WD10 et ca fonctionne parfaitement (et heureusement vu que je suis en plein dedans avec les calcul de congés payés)

    Bob.

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

Discussions similaires

  1. Enlever des jours à une date
    Par borgfabr dans le forum VBA Word
    Réponses: 5
    Dernier message: 08/03/2013, 15h08
  2. [MySQL] Ajouter des jours à une date donnée
    Par jiojioforever dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/10/2009, 10h32
  3. [Formulaire] Ajouter des jours à une date
    Par atlantideD dans le forum IHM
    Réponses: 2
    Dernier message: 21/05/2007, 11h07
  4. ajouter des jours à une date
    Par babalastar dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 27/02/2007, 12h39
  5. [HQL] Ajouter des jours à une date
    Par loulou dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/01/2007, 12h22

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