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 :

Probleme de boucle (rigolez pas !)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut Probleme de boucle (rigolez pas !)
    Salut,

    je galere depuis pres d une heure sur le point suivant.

    J ai deux DateTime. Qui correspondent a mes dates de debut et de fin de boucle. Je souhaiterais faire une boucle qui effectue chaque jour compris entre c dates. Bah je supose qu on n a pas besoin de faire intervenir d Integer tout ca tout ca, mais je vois pas comment faire ...

    Merci

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Tu initialises une datetime DC avec ta date de début DD.
    Dans un while, tu testes si ta date DC est inférieure à ta date de fin DF (dans la condition du while).
    Dans le corps du while, tu fais un
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Tiens voila, je t'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Dim debut As DateTime = Date.Now
            Dim fin As DateTime = CDate("15/08/2007")
     
            While Not debut.ToShortDateString = fin.ToShortDateString 'tans que lmes deux dates ne sont pas egales
                debut = debut.AddDays(1) 'incremente de 1
                MsgBox(debut.ToShortDateString)
            End While
     
            MsgBox("fini")
    L'idée consiste juste à incrementer le jour de 1 et le reste se fait tout seule !

    PS: SaumonAgile ma coiffé sur le poteau lorsque j'ai écrit ce code il t'avais deja donné la réponse

    Cdl
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Par contre, tu peux remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debut.ToShortDateString = fin.ToShortDateString
    Il est inutile/dangereux de convertir en chaine alors que tu veux comparer des dates.
    Tu peux utiliser à la place :
    La propriété Date renvoie le composant date d'un datetime, cad sans l'heure.

    EDIT : Tu peux aussi utiliser DateTime.Today à la place de DateTime.Now, vu que tu ne veux que la date du jour, tu n'as pas besoin de l'instant exact.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Sans doute , mais je ne m'y connais pas du tout en date car je n'utilise pas ces classes
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Resalut,

    ARG, revoila monsieur while. Je c pas pourquoi, mais je pense jamais a ce type de boucle. Je fonce tjs pour un FOR si je connais le nombre d iteration a faire.

    Effectivement avec un while c bcp plus facile. J ai fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dbongoingdate = dbStartdate
                While dbongoingdate < dbEnddate
                    dbongoingdate = dbongoingdate.AddDays(1)
                    Console.WriteLine(dbongoingdate)
                End While
    Merci merci ^^

    PS : Vous savez si ct faisable par FOR sans trop compliquer les choses ? Car j ai po trouvé

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    c'est faisable avec un for aussi

    for d as datetime = date1 to date2 step ...

    dans step je sais plus trop la forme qu'il faut mettre
    j'ai deja fait des boucles sur des heures avec step "01:00:00" mais pour les jours je sais pas trop
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    yo sperot51,

    c'est faisable avec un for aussi

    for d as datetime = date1 to date2 step ...

    dans step je sais plus trop la forme qu'il faut mettre
    j'ai deja fait des boucles sur des heures avec step "01:00:00" mais pour les jours je sais pas trop
    Bizarre, c ce genre de truc que j essayais de faire. Pourtant j avais un message d erreur sur le d disant : 'For' loop variable cannot be of type 'Date'

    Par exemple sur ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim d As DateTime
                For d = dbStartdate To dbEnddate Step "01:00:00"
                    Console.WriteLine(d)
                Next
    Slumpy.

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

Discussions similaires

  1. [Débutant] probleme sur boucle et pas simple
    Par biboulou dans le forum VB.NET
    Réponses: 3
    Dernier message: 14/02/2012, 00h45
  2. Probleme de boucle avec des processus sous UNIX
    Par sebastieng dans le forum POSIX
    Réponses: 6
    Dernier message: 15/10/2005, 18h57
  3. [Language]Problème de boucle
    Par marc_dd dans le forum Langage
    Réponses: 11
    Dernier message: 06/10/2005, 14h24
  4. Problem de boucle.....
    Par skad dans le forum C++
    Réponses: 6
    Dernier message: 29/09/2005, 16h28
  5. [C#] Probleme de boucle for et random
    Par Freeman166 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/01/2005, 14h34

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