1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

AIDE Créer date a partir d'une autres

Discussion dans 'Résolution problème & conseils' créé par rolly, Sept 23, 2020.

  1. rolly

    rolly Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    89
    J'aime reçus:
    26
    Bonjour,

    je voudrai créer une date a partir d une date saisie , mais avec une contrainte de jours tout les Lundi

    a partir de la date saisie et une récurrence de 3 fois . Je patauge un peu avec les contraintes de jours et

    de récurrence.

    Une idée SVP

    Cordialement
     
    Tags:
  2. rolly

    rolly Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    89
    J'aime reçus:
    26
    Alors j ai trouvé pour la répétions du nombres de fois , mais reste pour assigner le jour

    tout les lundi ou mardi ect..

    Cordialement
     
  3. Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    166
    J'aime reçus:
    162

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Alors j ai trouvé pour la répétions du nombres de fois , mais reste pour assigner le jour

    tout les lundi ou mardi ect..

    Cordialement
    Cliquez pour agrandir...
    Bonjour,

    Tu as la fonction DateVersJourEnLettre() qui te renvoie le jour de la semaine en toutes lettres correspondant à la date spécifiée.
    Lien direct :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    EXEMPLE:
    DateVersJourEnLettre("20011225") // Renvoie "Mardi"
    MaDate est une Date = "20011225"
    DateVersJourEnLettre(MaDate) // Renvoie "Mardi"
     
  • rolly

    rolly Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    89
    J'aime reçus:
    26
    merci wikeos mais je me suis mal exprimé le lundi c est pas en lettre ,
    je voudrai creer une date par exemple tout les lundi et 3 fois .
    trois fois j ai trouvé c est selectionner le lundi de chaque semaine qui
    me pose probleme

    Cordialement
     
  • Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    166
    J'aime reçus:
    162

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    merci wikeos mais je me suis mal exprimé le lundi c est pas en lettre ,
    je voudrai creer une date par exemple tout les lundi et 3 fois .
    trois fois j ai trouvé c est selectionner le lundi de chaque semaine qui
    me pose probleme

    Cordialement
    Cliquez pour agrandir...
    Désolé, je ne comprend toujours pas ta demande du coup
     
  • rolly

    rolly Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    89
    J'aime reçus:
    26
    en fait je voudrai a partir du par exemple 01 sept 2020 creer deux date une le lundi 07 sept
    et une le lundi 14 sept

    mais par rapport a des champs de saisie
    le lundi pourrai etre n importe qu el jours de la semaine
    et 2 fois pourra etre x fois

    desolé
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    jour = DateVersJour(uneDate)
    //Numéro du jour de la semaine correspondant à la date spécifiée :
    // 1 - Lundi 2 - Mardi 3 - Mercredi 4 - Jeudi 5 - Vendredi 6 - Samedi 7 - Dimanche
    SELON jour
    CAS 1:// 1 - Lundi

    CAS 2:// 2 - Mardi

    CAS 3:// 3 - Mercredi

    CAS 4:// 4 - Jeudi

    CAS 5:// 5 - Vendredi

    CAS 6:// 6 - Samedi

    CAS 7:// 7 - Dimanche

    FIN

    Tu peux aussi utiliser DateVersEntier et EntierVersDate
     
  • Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    166
    J'aime reçus:
    162

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    en fait je voudrai a partir du par exemple 01 sept 2020 creer deux date une le lundi 07 sept
    et une le lundi 14 sept

    mais par rapport a des champs de saisie
    le lundi pourrai etre n importe qu el jours de la semaine
    et 2 fois pourra etre x fois

    desolé
    Cliquez pour agrandir...
    PROCÉDURE DateTest(maDateInit est une Date)
    // Ton combo sera ton paramètre maDateInit

    // Pris pour l'exemple: maDateInit = "20200901" Le 1er Septembre 2020
    mesDates est une chaîne
    nbTour est un entier

    // Nombre de lundi à la suite que tu souhaites = 3
    TANTQUE nbTour <> 3
    // Tant que mon jour n'est pas un lundi il augmente d'une journée
    TANTQUE DateVersJourEnLettre(maDateInit) <> "lundi"
    maDateInit = DateVersEntier(maDateInit) + 1
    FIN
    // Quand un lundi est trouvé il affecte le lundi à mesDates et ajoute une journée pour continuer la boucle
    mesDates += maDateInit + RC
    maDateInit = DateVersEntier(maDateInit) + 1
    nbTour++
    FIN

    Info(mesDates)

    EDIT: Je vais manger et je te fait un truc plus simpa, mais la déjà ça fonctionne.
     
    #8 Wikeos, Sept 23, 2020
    Dernière édition: Sept 23, 2020
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , le problème avec DateVersJourEnLettre
    C'est qu'il tient compte de la langue
    Et tu dois donc testé le résultat pour toutes les langues
    DateVersJour est donc préférable car il renvoie un entier ce qui sera plus simple.
     
  • Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    166
    J'aime reçus:
    162

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , le problème avec DateVersJourEnLettre
    C'est qu'il tient compte de la langue
    Et tu dois donc testé le résultat pour toutes les langues
    DateVersJour est donc préférable car il renvoie un entier ce qui sera plus simple.
    Cliquez pour agrandir...
    Exact je vais rectifier le tir
     
  • rolly

    rolly Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    89
    J'aime reçus:
    26
    merci beaucoup je vais regarder le code
     
  • Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    166
    J'aime reçus:
    162

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Code (Text):
    PROCÉDURE DateTest(maDateInit est une Date)
    // Ton combo sera ton paramètre maDateInit

    // Pris pour l'exemple: maDateInit = "20200901" Le 1er Septembre 2020
    maDateSelect    est une Date    = maDateInit
    nbTour            est un entier
    nbTabChaine        est un entier    = 3    // Nombre de jours à la suite que tu souhaites
    mesDates        est un tableau de nbTabChaine chaîne


    TANTQUE nbTour <> nbTabChaine
        POUR i = 1 À nbTabChaine
            // Tant que mon jour n'est pas un lundi = 1, il augmente d'une journée
            TANTQUE DateVersJour(maDateSelect) <> 1 // 1: Lundi, 2: Mardi, 3: Mercredi, etc...
                maDateSelect = DateVersEntier(maDateSelect) + 1
            FIN
            // Quand un lundi est trouvé il affecte le lundi à mon tableau de chaines mesDates et ajoute une journée pour continuer la boucle
            mesDates[I]        = maDateSelect
            maDateSelect    = DateVersEntier(maDateSelect) + 1
            nbTour++
        FIN
    FIN

    // Ici tu as récupéré tes jours, tu en fait ce que tu en veux
    POUR i = 1 À nbTabChaine
        Info("Jour " + i + " après le " + DateVersChaîne(maDateInit) + " --> " +  DateVersChaîne(mesDates[I]))
    FIN
     
    #12 Wikeos, Sept 23, 2020
    Dernière édition: Sept 23, 2020
    rolly apprécie ceci.
  • rolly

    rolly Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    89
    J'aime reçus:
    26
    super Wikeos marche nickel ;);)

    Merci beaucoup
     
  • Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    166
    J'aime reçus:
    162

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    super Wikeos marche nickel ;);)

    Merci beaucoup
    Cliquez pour agrandir...
    Tout le plaisir est pour moi.
     
  • Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    166
    J'aime reçus:
    162

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Je t'ai tout mis en paramètres pour que tu puisse gérer à 100%

    Dans ton exemple demandé
    Code (Text):
    DateTest("20200901",3,1)
    Code (Text):
    PROCÉDURE DateTest(maDateInit est une Date, nbJours est un entier, JoursSemaine est un entier)
    // Ton combo sera ton paramètre maDateInit

    // Pris pour l'exemple: maDateInit = "20200901" Le 1er Septembre 2020
    maDateSelect        est une Date        = maDateInit
    nbTour                est un entier
    nbTabChaine            est un entier        = nbJours        // Nombre de jours à la suite que tu souhaites
    mesDates            est un tableau de nbTabChaine chaîne


    TANTQUE nbTour <> nbTabChaine
        POUR i = 1 À nbTabChaine
            // Tant que mon jour n'est pas un lundi = 1, il augmente d'une journée
            TANTQUE DateVersJour(maDateSelect) <> JoursSemaine // 1: Lundi, 2: Mardi, 3: Mercredi, etc...
                maDateSelect = DateVersEntier(maDateSelect) + 1
            FIN
            // Quand un lundi est trouvé il affecte le lundi à mon tableau de chaines mesDates et ajoute une journée pour continuer la boucle
            mesDates[i]            = maDateSelect
            maDateSelect        = DateVersEntier(maDateSelect) + 1
            nbTour++
        FIN
    FIN

    // Ici tu as récupéré tes jours, tu en fait ce que tu en veux
    // mesDates possèdes désormais le nombre de dates désirés
     
  • rolly

    rolly Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    89
    J'aime reçus:
    26
    merci , j avais deja passé les parametres de saisie , le code est dans la meme fenetre que les champs
    pour le moment , il n y a qu 'une fenetre qui appele le traitement, pas procedure pour l instant.

    encore merci en tout cas
    cordialement
     
    Wikeos apprécie ceci.
  • rolly

    rolly Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    89
    J'aime reçus:
    26

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    bonjour,
    juste un petit soucis , désolé , c'est que par rapport a la date de départ
    si c'est un lundi et je choisi un lundi pour la future création, la première date
    est la meme , il faudrait changer de semaine avant de créer
    je vais voir si j arrive a trouver quelque chose.

    Cordialement
     
    #17 rolly, Sept 24, 2020
    Dernière édition: Sept 24, 2020
  • rolly

    rolly Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    89
    J'aime reçus:
    26

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    alors j ai rajouter ceci dans ton code

    maDateSelect est une Date = DernierJourDeLaSemaine(maDateInit)

    ca a l air de fonctionner tu en pense quoi?

    Cordialement
     
  • Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    166
    J'aime reçus:
    162

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    alors j ai rajouter ceci dans ton code

    maDateSelect est une Date = DernierJourDeLaSemaine(maDateInit)

    ca a l air de fonctionner tu en pense quoi?

    Cordialement
    Cliquez pour agrandir...
    Bonjour,

    Je suis pas sur car si admettons maDateInit = mardi 1 Septembre 2020
    et que je souhaites récupérer les 2 prochains vendredi après ma date initiale, avec ton code qui te placera directement au dimanche 6 Septembre 2020, ce qui te fait louper le vendredi 4 Septembre 2020.
     
  • Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    166
    J'aime reçus:
    162

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    bonjour,
    juste un petit soucis , désolé , c'est que par rapport a la date de départ
    si c'est un lundi et je choisi un lundi pour la future création, la première date
    est la meme , il faudrait changer de semaine avant de créer
    je vais voir si j arrive a trouver quelque chose.

    Cordialement
    Cliquez pour agrandir...

    Tiens j'ai modifié le code pour régler le soucis, j'ai testé, ça fonctionne très bien, cela t'évite d'aller directement en fin de semaine et de peut être gérer des mauvais cas.
    Tu as juste à ajouter 1 jour à ta date initiale et relancer la procédure.
    Code (Text):
    PROCÉDURE DateTest(maDateInit est une Date, nbJours est un entier, JoursSemaine est un entier)

    maDateSelect        est une Date        = maDateInit
    nbTour                est un entier
    nbTabChaine            est un entier        = nbJours  
    mesDates            est un tableau de nbTabChaine chaîne


    // Si le jour d'initialisation n'est pas une journée cherché
    SI DateVersJour(maDateInit) <> JoursSemaine ALORS
        TANTQUE nbTour <> nbTabChaine
            POUR i = 1 À nbTabChaine
                // Tant que mon jour n'est pas un lundi = 1, il augmente d'une journée
                TANTQUE DateVersJour(maDateSelect) <> JoursSemaine // 1: Lundi, 2: Mardi, 3: Mercredi, etc...
                    maDateSelect = DateVersEntier(maDateSelect) + 1
                FIN
                // Quand un lundi est trouvé il affecte le lundi à mon tableau de chaines mesDates et ajoute une journée pour continuer la boucle
                mesDates[i]            = maDateSelect
                maDateSelect        = DateVersEntier(maDateSelect) + 1
                nbTour++
            FIN
        FIN
    SINON
        maDateSelect        = DateVersEntier(maDateSelect) + 1
        DateTest(maDateSelect, nbJours, JoursSemaine)
    FIN

    // Ici tu as récupéré tes jours, tu en fait ce que tu en veux
    // mesDates possèdes désormais le nombre de dates désirés
    POUR i = 1 À nbTabChaine
        SAI_Resultat += DateVersChaîne(mesDates[i]) + RC
    FIN
     
    #20 Wikeos, Sept 24, 2020
    Dernière édition: Sept 24, 2020
  • Partager cette page

    Chargement...