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 :

Problème de trier de jour en mois


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Par défaut Problème de trier de jour en mois
    Bonjour,

    je vous explique mon problème.

    Je souhaiterai afficher dans une listebox le contenu d'une base de donnée access temperature exprimé par jour de relever soit 365 jours
    Néanmoins lorsque j'exécute mon select case pour faire une division par mois...

    Ma listbox assigne les 365 valeurs alors que je souhaite afficher pour un mois considéré.


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Private Sub Btn_Afficher_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAfficher.Click
            Dim ville As String
            Dim i As Integer
     
            ville = combobox_V.Text 'ville considéré
            mois = ComboBox_M.Text 'mois considéré
            n = temperature.Items.Count
     
            ReDim tabtemp(nbtemp)
     
            Call RecupererTemperaturesVille(ville, nbtemp, tabtemp) 'récupération de 365 temperature
            If nbtemp = -1 Then
                MsgBox("Problème de connexion à la base de données")
            Else
                temperature.Items.Clear()
     
                Select Case mois
                    Case 1 To 31
                        mois = "Janvier"
                    Case 32 To 60
                        mois = "Fevrier"
                    Case 61 To 91
                        mois = "Mars"
                    Case 92 To 121
                        mois = "Avril"
                    Case 122 To 152
                        mois = "Mai"
                    Case 153 To 182
                        mois = "juin"
                    Case 183 To 213
                        mois = "juillet"
                    Case 214 To 244
                        mois = "Août"
                    Case 245 To 274
                        mois = "Septembre"
                    Case 275 To 305
                        mois = "Octobre"
                    Case 306 To 335
                        mois = "Novembre"
                    Case 336 To 365
                        mois = "Decembre"
                End Select
                For i = 0 To nbtemp - 1
                    temperature.Items.Add(tabtemp(i))
                Next i
            End If
        End Sub
    Merci d'avance pour vos réponses

  2. #2
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Bonjour

    Ce que j'ai compris tu veux affaicher dans "temperature" les températures d'un seul mois corespend "nbtemp"

    Si j'ai bien compris tu doit faire ca

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
           
    Dim nbtempDebut as integer
         Select Case nbtemp
                    Case 1 To 31
                        mois = "Janvier"
                        nbtempDebut=1
                    Case 32 To 60
                        mois = "Fevrier"
                        nbtempDebut=32
                    Case 61 To 91
                        mois = "Mars"
                        nbtempDebut=61
                    Case 92 To 121
                        mois = "Avril"
                        nbtempDebut=92
                    Case 122 To 152
                        mois = "Mai"
                        nbtempDebut=122
                    Case 153 To 182
                        mois = "juin"
                        nbtempDebut=153
                    Case 183 To 213
                        mois = "juillet"
                        nbtempDebut=183
                    Case 214 To 244
                        mois = "Août"
                        nbtempDebut=214
                    Case 245 To 274
                        mois = "Septembre"
                        nbtempDebut=245
                    Case 275 To 305
                        mois = "Octobre"
                        nbtempDebut=275
                    Case 306 To 335
                        mois = "Novembre"
                        nbtempDebut=306
                    Case 336 To 365
                        mois = "Decembre"
                        nbtempDebut=326
                End Select
                For i = nbtempDebut To nbtemp
                    temperature.Items.Add(tabtemp(i-1))
                Next i
            End If
        End Sub
    la booucle "For" ne doit pas commence a partir du début da la table

    A+

  3. #3
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Quelle valeur prend mois = ComboBox_M.Text 'mois considéré ? Le nom du mois ? Le jour dans l'année ? Le numéro de mois ?


    Tu as peut-être mal interprétée l'usage du select Case ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Select Case mois
                    Case 1 To 31
                        mois = "Janvier"
    Tu testes si 'mois' est entre 1 et 31, et si oui, tu écrases la valeur avec le nom du mois ...


    En attendant d'en savoir plus, une fonction qui peut aider :

    DateTime.DaysInMonth Method (Retourne le nombre de jours d'un mois et d'une année spécifiée, utile pour les années bissextiles)

    EDIT:
    Et DateTime.DayOfYear, propriété Obtient le jour de l'année représenté par cette instance

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Par défaut
    Alors pour répondre à vos question...
    Nbtemp correspond au 365 température récupérer.
    Dans la combobox_M.text se sont les mois qui est sélectionné ( ex: janvier,...)
    Donc je vois pas comment rendre mon code cohérent et qu'il fonctionne surtout

    Merci d'avance pour votre aide

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    bonjour,

    Voici un début de réflexion.
    Il suffit de définir une date par rapport au mois en se basant sur le 1er du mois sélectionné. — Tu n'indiques pas l'année, cela peut être important pour les années bissextile si tu ne traites pas que l'année courante. (Attention aux manipulations de date en fonction de la culture locale sur le PC.)
    Ensuite tu boucles : pour (jour de l'année) au (jour de l'année + nombre de jour du mois - 1) (-1 car le premier jour du mois est déjà pris en compte)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Dim DateTraitee As Date = CType(("01/" & ComboBox_M.Text & "/" & Now.Year), Date)
            lstTemperature.Items.Clear()
            For i As Integer = DateTraitee.DayOfYear To DateTraitee.DayOfYear + DateTime.DaysInMonth(DateTraitee.Year, DateTraitee.Month) - 1
                lstTemperature.Items.Add(tabtemp(i))
            Next
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

Discussions similaires

  1. [XL-2010] Problème de date inversion jour/mois
    Par gigalia dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/10/2013, 11h31
  2. [Toutes versions] Problème affichage jour du mois
    Par impur dans le forum Excel
    Réponses: 5
    Dernier message: 26/08/2012, 16h39
  3. Problème de date: Inversion jour et mois dans cellule de résultat
    Par tic59 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/11/2010, 21h04
  4. Problème de dates (jour et mois inversés)
    Par Razor82 dans le forum VB.NET
    Réponses: 4
    Dernier message: 07/08/2009, 16h55
  5. problème de mise a jour
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 15/04/2004, 16h09

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