[Catégorie modifiée VB6 ->.Net] Utiliser Trois ComboBox pour faire afficher la d

Signaler
Messages postés
1
Date d'inscription
vendredi 30 décembre 2011
Statut
Membre
Dernière intervention
30 décembre 2011
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour à tous voilà mon problème, je suis en train de créer un formulaire (de renseignement), avec le nom, le prénom, le statut professionnel, la date de naissance, adresse, code postal, ville, avec Visual Basic 2010 Express. Donc mon problème est que j'ai utilise pour afficher la date de naissance Trois ComboBox (date, mois, année) et j'ai disposer à droite une TextBox qui devra indique l'âge en fonction de la date d'aujourd'hui par rapport à la date de naissance indiquer.
J'aimerais savoir s'il existe des lignes codes qui permet de récupérer tous les dates en fonction du mois choisis et si s'il y a des lignes de codes qui permet de récupérer de 1960 à aujourd'hui et pour finir une ligne de code qui permet de faire un calcul pour afficher l'âge d'aujourd'hui.
J'ai trouver en fesant des recherches ce code:

 Dim i As Integer

        ComboBox3.Items.Clear()

        For i = 1960 To System.DateTime.Now.Year
            ComboBox3.Items.Add(i)
        Next i


mais il ne fonctionne pas très bien et pas comme je le voudrais.
Donc je vous demande s'il vous plaît de prendre un peu de temps pour m'aide et me répondre.
Merci d'avance


Sacha1992

2 réponses

Messages postés
14813
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 juillet 2021
156
Bonjour,

Sépares les points de question et avances progressivement.
Quel est le premier problèmes (Code, comportement désiré, comportement constaté, ...) ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut

Mauvais terme :
"J'aimerais savoir s'il existe des lignes codes qui permet de récupérer tous les dates en fonction du mois choisis"
Toutes les dates ?
Une date comporte jour, mois et année
Parles-tu du nombre de jours ?
Pour trouver le nombre de jours d'un mois et d'une année connue : fonction DateTime.DaysInMonth

"et pas comme je le voudrais"
Et comment le voudrais-tu ?
C'est une info importante si tu veux de l'aide.
Ce code semble correct .
Pour afficher les années en ordre décroissant, jouer dans l'ordre des paramètres du For-Next et ajouter l'option "Step" à cette même instruction.

Le sujet me paraissait amusant à travailler, moi qui ne connais pas trop VB.Net, alors voilà ce que j'ai tenté :
- Dans ta forme, deux DateTimePicker : le 1 pour la date antérieure, le 2 pour la date la plus récente
- Une TextBox
- Dans le DateTimePicker1_ValueChanged (et 2), appeler la fonction de calcul :
TextBox1.Text = CalculAge

- La fonction en question
    Private Function CalculAge() As String

        Dim Date1 As Date = DateTimePicker1.Value
        Dim Date2 As Date = DateTimePicker2.Value
        If Date1 > Date2 Then
            ' Dates inversées
            Date1 = DateTimePicker2.Value
            Date2 = DateTimePicker1.Value
        End If
        Dim NombreMois As Integer
        Dim MoisRestants As Integer
        Dim NombreAnnees As Integer
        Dim NombreJours As Integer

        NombreMois = DateDiff(DateInterval.Month, Date1, Date2)
        If Date1.Day < Date2.Day Then
            NombreJours = Date2.Day - Date1.Day
        ElseIf Date1.Day > Date2.Day Then
            NombreJours = DateTime.DaysInMonth(Date1.Year, Date1.Month) - Date1.Day + Date2.Day
            NombreMois -= 1
        Else
            NombreJours = 0
        End If
        MoisRestants = NombreMois Mod 12
        NombreAnnees = (NombreMois - MoisRestants) / 12

        Dim sTemp As String = ""
        If NombreAnnees > 0 Then
            sTemp = NombreAnnees.ToString & " an"
            If NombreAnnees > 1 Then
                sTemp += "s"
            End If
        End If
        If MoisRestants > 0 Then
            If sTemp.Length > 0 Then
                If NombreJours > 0 Then
                    sTemp += ", "
                Else
                    sTemp += " et "
                End If
            End If
            sTemp += MoisRestants.ToString & " mois"
        End If
        If NombreJours > 0 Then
            If sTemp.Length > 0 Then
                sTemp += " et "
            End If
            sTemp += NombreJours.ToString & " jour"
            If NombreJours > 1 Then
                sTemp += "s"
            End If
        End If
        Return sTemp

    End Function

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)