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

sacha1992 Messages postés 1 Date d'inscription vendredi 30 décembre 2011 Statut Membre Dernière intervention 30 décembre 2011 - 30 déc. 2011 à 15:33
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 30 déc. 2011 à 20:49
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
A voir également:

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 déc. 2011 à 19:28
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 déc. 2011 à 20:49
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)
0
Rejoignez-nous