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 :

Changer Image en fonction de date systeme


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 8
    Points
    8
    Par défaut Changer Image en fonction de date systeme
    Salut à tous,

    J'ai monté une appli sous visual studio express 2008. J'ai mis en ecran de démarage un SplashScreen avec une image. J'aimerais que cette image change en fonction de la saison, je suis donc allé dans mon SplashScreen designer et j'ai trouvé la ligne qui correspond à l'affichage de l'image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.plus_belle_plage
    Où plus_belle_plage est le nom de mon image.

    Je voudrais mettre un If pour dire si on est en été tu met la plage, si on est en automne tu met les feuilles et ainsi de suite pour toutes les saison. Le problème est que je ne connais pas le code pour le faire.
    Peut être vaut il mieu que je compare des date qui correspondrais à mes saisons mais je ne connais pas non plus le code.

    Merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Citation Envoyé par fabiprotour Voir le message
    Le problème est que je ne connais pas le code pour le faire.
    pour faire quoi ? savoir en quelle saison on est ? changer l'image ? Le code pour mettre une image, tu l'as posté... donc je vois pas ce qui te manque

    Pour la saison, il suffit de connaitre les dates des saisons :
    - Printemps : 21 mars
    - Eté : 21 juin
    - Automne : 21 septembre
    - Hiver : 21 décembre

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 8
    Points
    8
    Par défaut re
    Merci de ta réponse,

    En fait il me manque le code pour récupérer le jour et le mois (sans l'année) et la solution pour comparer les date :

    Comment je peux lui dire : - Si la date systeme est supérieure au 21/03 et est inférieur au 21/06 alors... le reste je le connais.

    Merci.

  4. #4
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    pour récupérer le mois et le jour suffit juste que tu passe l'heure système dans une variable de type DateTime.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim Dt as DateTime
    Dt.Day 'pour avoir le jour
    Dt.month 'pour avoir le mois
    et pour compare tu peut faire un Date1.CompareTo(Date2)

    Date1.CompareTo(Date2)
    compare la valeur de cette instance a une instance System.datetime et retourne un entier qui indique si cette instance est antérieur, ultérieur ou égal au Datetime spécifié

    @++

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim l_Date As DateTime
            l_Date.Day
            l_Date.Month
    Visual studio me renvoi l'erreur :
    Erreur Un accès à la propriété doit assigner la propriété ou utiliser sa valeur.
    Et après avoir récupérer mon jour et mon mois comment je fait pour les assembler?

    en gros je voudrais un truc comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If DateSystem > 21/03 and DateSystem < 21/06 Then
                       Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.image_de_printemps
    Else
                       If DateSystem > 21/06 and DateSystem < 21/12hen
                       Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.image_d_hiver
                       End If
    End If
    Sauf que ça ne marche pas. Je suis pas très fort en programmation, je comprends pas tout ^^.

    Merci

  6. #6
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Citation Envoyé par fabiprotour Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim l_Date As DateTime
            l_Date.Day
            l_Date.Month
    l_Date.Day et l_Date.Month retourne des entiers donc tu doit les affecter a deux variables de type int.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Voilà une fonction qui renvoie la saison pour une date donnée :

    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
    	Public Enum Season
    		Spring
    		Summer
    		Autumn
    		Winter
    	End Enum
     
    	Public Shared Function GetSeason(ByVal dt As DateTime) As Season
    		Dim dSpring As DateTime = New DateTime(dt.Year, 3, 21)
    		Dim dSummer As DateTime = New DateTime(dt.Year, 6, 21)
    		Dim dAutumn As DateTime = New DateTime(dt.Year, 9, 21)
    		Dim dWinter As DateTime = New DateTime(dt.Year, 12, 21)
    		If dt < dSpring Then
    			Return Season.Winter
                    ElseIf dt < dSummer Then
    			Return Season.Spring
                    ElseIf dt < dAutumn Then
    			Return Season.Summer
                    ElseIf dt < dWinter Then
    			Return Season.Autumn
    		Else
    			Return Season.Winter
    		End If
    	End Function
    Pour l'utiliser, tu peux faire comme ça (en supposant que tu aies dans les ressources de ton appli des images Printemps, Eté, Automne et Hiver) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim saison As Season = GetSeason(DateTime.Today)
    Select Case saison
        Case Season.Spring
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Printemps
        Case Season.Summer
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Eté
        Case Season.Autumn
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Automne
        Case Season.Winter
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Hiver
        Case Else
            ' cas par défaut (ne devrait pas se produire...)
    End Select

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    J'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Dim l_Date As DateTime
            Dim l_Day As Integer
            Dim l_Month As Integer
            Dim l_DateStr As String
     
            l_Day = l_Date.Day
            l_Month = l_Date.Month
            l_DateStr = CStr(l_Day) & "/" & CStr(l_Month)
            MsgBox(l_DateStr)
    Mais mon msgbox renvoi 1/1 il ne me renvoi pas 2/9.

    Il me manque quelque chose?

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 502
    Points
    1 502
    Par défaut
    sur la premiere ligne mettre:

    Dim l_Date As DateTime = DateTime.Now

    sinon c'est le 01/01/1970 je crois.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Super Tomlev ca marche super bien.

    Merci beaucoup

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    tomlev dans ce que tu m'a donné comment je pourrais faire un random avec plusieurs photos pour l'été, plusieures pour l'hiver...


    Si je met :

    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
    Dim saison As Season = GetSeason(DateTime.Today)
    Select Case saison
        Case Season.Spring
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Printemps
            Or
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Printemps2
        Case Season.Summer
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Eté
            or
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Eté2
        Case Season.Autumn
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Automne
            or
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Automne2
        Case Season.Winter
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Hiver
            or
            Me.MainLayoutPanel.BackgroundImage = Global.Gestion_Informatique.My.Resources.Resources.Hiver2
        Case Else
            ' cas par défaut (ne devrait pas se produire...)
    End Select

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Ce n'est pas à ça que sert l'opérateur Or... le code que tu as écrit n'a pas de sens. J'ai l'impression qu'il te manque quelques connaissances de base sur le langage pour pouvoir développer efficacement... tu devrais y remédier en lisant le cours de Philippe Lasserre

    Pour générer des nombres aléatoires on utilise la classe Random. Tu peux voir ça comme un dé à N faces. Selon le nombre obtenu, tu choisis telle ou telle image

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

Discussions similaires

  1. Changer une image en fonction du bouton choisi
    Par brunochp dans le forum Flash
    Réponses: 1
    Dernier message: 31/08/2010, 14h15
  2. Changer la date System
    Par The eye dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 31/07/2007, 09h08
  3. changer image en fonction de la selection d'une Listbox
    Par avogadro dans le forum Composants VCL
    Réponses: 10
    Dernier message: 28/04/2006, 17h18
  4. Réponses: 7
    Dernier message: 03/03/2006, 16h51
  5. Changer d'image en fonction des options d'un formulaire
    Par Pouzy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/01/2006, 15h21

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