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

VB.NET Discussion :

ajouter un jour a une date d’après l'heure


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut ajouter un jour a une date d’après l'heure
    Bonsoir,

    voila mon problème j'ai une fenêtre dans laquelle l'utilisateur sélectionne une date par le "datetimepicker" affecter à la variable p_date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        dim p_date As Date = DateTimePicker1.Text
    ensuite l’utilisateur à deux "combobox", pour sélectionné sur la première l'heure de début et sur la suivante l'heure de fin :
    dans les deux "combobox" j'ai les valeurs suivantes :
    8:00, 9:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00, 19:00, 20:00, 21:00, 22:00, 23:00, 00:00, 1:00, 2:00, 3:00, 4:00, 5:00, 6:00, 7:00, 8:00
    ce que j'essaye de faire c'est que lorsque l'utilisateur sélectionne sur l'une des "combobox" une heure supérieur à 00:00 alors la date s'incrémente de 1 jour.

    j'ai essayé ceci : J'y suis presque le seul soucis est que je même si je sélectionne une heure de fin supérieur à 00:00 la variable date "date_de_fin" ne s'incrémente pas d'un jour

    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
    26
     
        Dim xd As DateTime
        Dim xf As DateTime
        Dim date_de_debut As Date
        Dim date_de_fin As Date
        Dim supdate As Date = DateAdd("d", 1, p_date) 'ajoute un jour à la date
     
    Private Sub ComboBox2_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedValueChanged
            xd = Convert.ToDateTime(DirectCast(sender, ComboBox).SelectedItem)
            If xd < Convert.ToDateTime("23:59") Then
                'MessageBox.Show("Poste de jour")
                date_de_debut = p_date & " " & xd.ToString("H:m")
            Else
                'MessageBox.Show("Poste de nuit")
                date_de_debut = supdate & " " & xd.ToString("H:m")
            End If
        End Sub
     
        Private Sub ComboBox3_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox3.SelectedValueChanged
            xf = Convert.ToDateTime(DirectCast(sender, ComboBox).SelectedItem)
            If xf < Convert.ToDateTime("23:59") Then
                date_de_fin = p_date & " " & xf.ToString("H:m")
            Else
                date_de_fin = supdate & " " & xf.ToString("H:m")
            End If
        End Sub

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonjour Gastoncs,

    quelques petites remarques afin d'améliorer ton code :
    1. Le type Date et le type DateTime sont identique, passes ton curseur sur DateTime, l'intellissens te dit que c'est une Date, donc autant directement marquer Date partout.
    2. Il est plus propre d'écrire Private que Dim pour les variables globale de la class
    3. La ligne Dim supdate As Date = DateAdd("d", 1, p_date) pourrait être directement remplacée par Private supdate As Date = Now.AddDays(1)
    4. Essayes de nommer directement bien tes composants dans ton designer, cela prend peut de temps et rend le code bien plus lisible et plus facilement maintenable. Faire la différence entre ComboBox1, ComboBox2 et ComboBox3 ne peut se faire qu'en connaissant le projet ou en allant voir dans le designer ce qui est une perte de temps...


    Concernant ton problème, tu pourrais tout simplement vérifier dans ComboBox3_SelectedValueChanged que le comboBox de fin n'est pas plus petit que le comboBox de début, si c'est le cas tu fais date_de_fin.addDays(1) et le tour est joué.

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

Discussions similaires

  1. Ajout de jours dans une date
    Par falco- dans le forum SQL
    Réponses: 4
    Dernier message: 23/02/2010, 19h26
  2. [PHP 4] Ajouter N jour a une date
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 23/05/2009, 08h50
  3. Requête pour ajouter un jour a une date
    Par Diablo_22 dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/04/2009, 11h41
  4. ajouter les jours d'une date
    Par harjer dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/06/2007, 16h21
  5. Ajouter 15 jours a une date
    Par azorol dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/12/2005, 14h36

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