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 :

Ajouter un entier à une date


Sujet :

WinDev

  1. #1
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Ajouter un entier à une date
    Bonjour,

    J'ai créer un fichier (dates) qui stocke 3 entrées
    J'ai 3 boutons de saisies dans lesquels un entier est seulement possible.
    L'idée et créer 3 valeur qui correspondants à la date du jour moins l'entier indiqué dans la saisie correspondante.

    Voici le code que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dates.date1 = today() - SAI_valeur1
    Dates.date2 = today() - SAI_valeur2
    Dates.date3 = today() - SAI_valeur3
    Le code remonte une erreur. Windev ne permet pas de soustraire un entier à une date, dans mon exemple, date du jour - 30 jours . Es-ce que quelqu'un sait comment remédier à ce problème?

    Merci,

    Antoine

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 051
    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 051
    Points : 9 386
    Points
    9 386
    Par défaut
    La documentation de Today() est claire.
    Today() renvoie une chaine de caractères , ou encore une variable de type date ( c.a.d. une structure ...)

    Et on ne peut pas soustraire ou additionner des chaines de caractères ni des structures avec des entiers.

    Regarde l'aide sur le type de donnée DATE : http://doc.pcsoft.fr/fr-FR/?1514066&name=Type_Date
    Tu y trouveras tous les éléments dont tu as besoin.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Elle sert à quoi la fonction ? Ajouter ou enlever des jours à partir d'une date de depart ? Si c'est le cas, il faut utiliser la propriete ..Jour

    Madate..Jour -= 1
    Madate..Jour += 1

  4. #4
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    today() renvoie une chaine de caractères, donc il est normal d'obtenir une erreur dans le code ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dates.date1 = today() - SAI_valeur1
    Dates.date2 = today() - SAI_valeur2
    Dates.date3 = today() - SAI_valeur3

    Si tu convertis ta date en entier avant de réaliser la soustraction, cela devrait aller mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dates.date1 = entierversdate(dateversentier(today()) - SAI_valeur1)
    Dates.date2 = entierversdate(dateversentier(today()) - SAI_valeur2)
    Dates.date3 = entierversdate(dateversentier(today() - SAI_valeur3)

  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
    Bonjour,

    Avant de proposer une solution à antoine_be, il faudrait savoir ce qu'il veut faire exactement et dans quel contexte.
    Notamment, il ne nous expose que "son idée" de faire ...
    A-t-il tenu compte des contrôles de validité et du bornage de ses valeurs, du fait que l'entier à retirer ne peut être supérieur au nombre de jour affiché (SAUF traitement de ce 'débordement') etc. ?

    Un premier conseil est de travailler avec des variables de type Date et éventuellement Durée ou Heure.
    Le seconde est de travailler avec les propriétés de ces types Date et particulièrement dans le cas qui l'occupe avec la propriété ..Jour

    Comme le signale l'aide :
    - Pour obtenir le dernier jour d'un mois, ...
    - La propriété ..Jour permet de calculer la date de fin d'une échéance à 90 jours fin de mois ...
    - Les propriétés ..Mois et ..Jour permettent de calculer simplement la date de fin d'un mois flottant.
    - Lors d'opérations sur les dates, le changement de mois est automatiquement géré.
    - L'année est également modifiée si nécessaire

    D'une manière générale, ce serait dommage de faire l'impasse sur ces fonctionnalités pour développer autant de routines spécifiques.

    Hemgé

Discussions similaires

  1. ajout d'entier à une date
    Par cool dans le forum WinDev
    Réponses: 3
    Dernier message: 26/06/2008, 15h33
  2. [MySQL] ajout de jour à une date
    Par mohican13 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/03/2006, 17h39
  3. [Debutant] Ajouter un temps à une date
    Par Hokagge dans le forum MFC
    Réponses: 2
    Dernier message: 04/02/2006, 15h21
  4. [Dates] Ajouter un mois à une date
    Par Higestromm dans le forum Langage
    Réponses: 8
    Dernier message: 17/01/2006, 15h27
  5. ajouter 1 mois à une date dans une requete
    Par alain.lc dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 04/04/2005, 12h05

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