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 d'une date futur [WD22]


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    -
    Inscrit en
    Août 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Août 2003
    Messages : 75
    Points : 76
    Points
    76
    Par défaut Calcul d'une date futur
    Bonjour,

    Je cherche a trouver une solution a mon problème, j'ai comme donnée un numéro de semaine de 1 a 4 et un jour dans la semaine de 1 à 7, et avec ça je dois donnée une date futur, une futur date de rdv.
    Evidemment j'ai cherche les fonctions disponible, mais pour le moment je sèche.

    Si vous pouvez m'aider ?

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    Bonjour
    il y a tout ce du'il fait !
    si tu veux qu'on t'aide plus donne un exemple de ton besoin.

    note que :

    date est une date = "20190131"
    trace (date + 1)

    te rendra le 1/2/2019

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    Je viens de regarder la documentation, il y a une fonction qui s'appelle SemaineVersDate() https://doc.pcsoft.fr/fr-FR/?1000020...sdate_fonction
    Normalement, avec cette fonction, tu devrais t'en sortir.
    Tu n'avais pas regardé la documentation ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Membre régulier
    Homme Profil pro
    -
    Inscrit en
    Août 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Août 2003
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    Oui, j'ai cherche dans la documentation, mais je n'es pas trouvé de solution.

    Je vais vous donner un exemple de ce que j'ai besoin :

    Nous sommes le : 19-01-2019

    Dans ma base j'ai deux infos le numéro de semaine dans le mois numéro de 1 a 4 et le jour de la semaine de 1 à 7

    Par exemple si j'ai 2 pour la semaine et jour 3 mercredi

    J'ai besoin qu'il me donne comme date 9-01-2019

    Autre exemple j'ai 4 pour la semaine et jour 6 samedi

    J'ai besoin qu'il me donne comme date 26-01-2019

    Es ce que c'est possible ?


    Merci de votre aide

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    Griffonné un peu vite, mais on doit être bon. Je n'ai pas de clé Windev avec moi pour tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dd est une Date 
    j est un entier 
    num_annee , num_sem, num_jour est un entier
    num_annee = 2019
    num_sem = 2
    num_jour = 3
     
    dd = SemaineVersDate(num_sem, num_annee)
    j = DateVersEntier(dd)
    j = j + num_jour-1
    dd = EntierVersDate(j)
     
    Info( dd..Jour, dd..Mois, dd..Année)
    La plus grosse difficulté, c'est dans la détermination de l'année. Si on est en décembre 2019, et qu'on cherche le jeudi de la semaine 4, c'est jeudi semaine 4 de l'année 2020, ou de l'année 2019 ?

    Tu as tout intérêt à ajouter un 4ème champ de saisie, l'année.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Membre régulier
    Homme Profil pro
    -
    Inscrit en
    Août 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Août 2003
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    Merci pour ta réponse.

    J'ai oublie de mentionner que ça doit être valable pour chaque mois de l’année


    par exemple :

    quand on est en mars 2019 : semaine 2 jour 6

    16/03/2019

    quand on est en juin 2019 : semaine 4 jour 3

    26/06/2019

    c'est vrai que les exemples que j'ai donne était bien mais la c'est plus parlant pour la problématique.

  7. #7
    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 Une piste ...
    Bonjour,

    Je crois qu’il vous faut réfléchir un peu plus et puis reformuler votre demande.
    Les mois de 4 semaines, cela n’existe pas, SAUF
    - une fois tous les 4 ans (février des années bissextiles, en se souvenant que l’année n’est pas bissextile lorsqu’elle est un multiple de 100, à moins d’être un multiple de 400)
    - dans le calendrier fixe (https://fr.wikipedia.org/wiki/Calendrier_fixe) qui n’est pas d’application publique, mais est utilisé de manière interne dans certaines organisations.

    Vos exemples sont discordants :
    Janvier, semaine 2 jour 3 = 9/01/2019, vous tenez compte de la première semaine qui est incomplète
    Mars, semaine 2 jour 6 = 16/03/2019, vous ignorez la première semaine qui est incomplète
    Juin, semaine 4 jour 3 = 26/06/2019, vous ignorez la première semaine qui est incomplète

    Donc, vous utilisez un critère - NON communiqué - pour prendre ou non une semaine incomplète en considération (au moins 4 jours ?).
    C’est en fonction de ce critère que vous pourrez vous synchroniser avec les semaines de Windev.


    Donc, il vous faut considérer :
    • au moins une cinquième semaine, voire une sixième, sauf février bissextile - en fonction des besoins qui ont été imaginés. En tout cas, avec 4 semaines de 7 jours, vous n'en couvrez que 28.
    • que la première et/ou la dernière semaine du mois peu(ven)t être incomplète(s) et ce que vous en faites, car vous pourriez monter à 6 semaines (première incomplète – 4 semaines complètes – dernière incomplète)
    • contrôler que le numéro du jour se situe non seulement sans la fourchette 1 à 7 (en général) mais aussi dans la fourchette autorisée pour la première et la dernière semaine du mois et de l’année considérés



    Avec les fonctions PremierJourDuMois(), DateVersJour(), DateVersNuméroDeSemaine() ou NuméroDeSemaine(qui gère aussi ISO8601), PremierJourDeLaSemaine.

    Vous auriez sans doute intérêt à écrire une petite fonction PremièreSemaineDuMois qui vous retournera la première semaine entière à considérer ou la date du lundi de cette semaine.
    A partir de là, une simple opération mathématique vous donnera la date voulue, avec DateDifférence() ou avec la propriété ..Jour du type Date.

    Bon travail, cela ne sera pas très compliqué.

    Hemgé

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    @Hemgé j'a pensé comme toi.
    Je me suis dit, si Alex57 pose la question, c'est qu'il n'y a pas de moyen immédiat de trouver le 1er jour d'une semaine. Sinon, la réponse est évidente.
    Je pensais donc passer par les fonctions que tu as proposées.

    Mais j'ai quand même regardé la documentation. Et surprise, j'ai vu la fonction SemaineVersDate, qui permet de faire tout le boulot en une seule instruction ou presque !
    J'ai donc proposé un code qui marche, extrêmement simple, directement inspiré de la documentation, mais Alex57 doit préférer un truc plus compliqué.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    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
    @tbc92

    Attention, il ne travaille pas sur l'année et donc SemaineVersDate ne répond pas à sa demande.
    Il veut des numéros de semaine sur un horizon mensuel (1 à 4, voire 5 sans doute) et non pas 52-53 semaines annuelles.

    Voir son premier post : " j'ai comme donnée un numéro de semaine de 1 a 4 "
    Et aussi les précisions du dernier : "J'ai oublie de mentionner que ça doit être valable pour chaque mois de l’année."

    Pour le reste, le code (ou au moins une solide amorce) est de son ressort.

  10. #10
    Membre régulier
    Homme Profil pro
    -
    Inscrit en
    Août 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Août 2003
    Messages : 75
    Points : 76
    Points
    76
    Par défaut
    Merci a vous deux, d'avoir pris du temps pour me répondre.

    Comme dit, c'est pas que je cherche a faire complique, c'est que a la base, je n'es pas beaucoup d'infos, et que je travail sur une ancienne base SQLSERVEUR, je dois donc faire avec les données existante.
    Et je vous ai demande la partie, la plus simple.

    Néanmoins grâce a vous, j'ai pu régler mon soucis de date.

    Je vous en remercie.

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

Discussions similaires

  1. [Dates] calculer une date future
    Par arti2004 dans le forum Langage
    Réponses: 3
    Dernier message: 02/07/2007, 19h12
  2. [Dates] Faire un calcul sur une date?
    Par kevinf dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2006, 19h18
  3. Calcul d'une date de fin
    Par jym62 dans le forum Access
    Réponses: 7
    Dernier message: 30/08/2006, 20h47
  4. affiche une date futur
    Par mademoizel dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 12/06/2006, 13h21
  5. Réponses: 5
    Dernier message: 12/04/2006, 09h56

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