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 6 et antérieur Discussion :

Liste date d'une semaine


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 44
    Points : 34
    Points
    34
    Par défaut Liste date d'une semaine
    Bonjour.
    J'aimerai savoir si il est possible de connaitre la liste des date qui compose une semaine donnée.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub DatesJourSemaine()
    Dim TabDate(7)
        DateDébut = InputBox("Saisir la date au format jj/mm/aaaa", "", "26/06/2006")
        TabDate(1) = DateDébut
        For i = 1 To 6
            TabDate(i + 1) = Format(CDate(DateDébut) + i, "dd/mm/yy")
        Next
     
        'Contrôle
        For i = 1 To 7
            MsgBox TabDate(i)
        Next
    End Sub
    Mais précise ta demande, je ne crois pas avoir répondu à ta question

    Regarde aussi datepart, dans l'aide

    A+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    je vais regarder ca merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    En fait datepart ne donne pas ce que je souhaite (ou alors alors j'ai rien compris) et ton code non plus (même si au pire je dois pouvoir modifier l'appli pour faire avec).

    Ce que je souhaite, c'est que a partir d'un numéro de semaine passé en paramètre, la fonction me ressorte la liste des date de cette semaine.
    Par exemple, si je lui passe 24, elle me retournerai 12/06/2006, 13/06/2006, 14/06/2006, 15/06/2006, 16/06,2006, 17/06/2006 et 18/06/2006. (en supposant que par défaut on travaille sur l'année en cours)

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Shinta veut quelque chose ressemblant à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Command1_Click()
      alala = DateValue("01/01/2006")
      coucou = WeekDay(alala) ' on détermine ici quel jour de la semaine était le 01/01/2006
      toto = 2 ' ici le numéro de la semaine concernée - le jour 1 de la semaine étant un dimanche
      dep = ((toto) * 7)
      If coucou > 1 Then dep = dep + coucou
      For i = 0 To 6
        MsgBox alala + dep + i
      Next
    End Sub
    pas affiné !


    EDIT :
    J'ai édité et affiné avec ces conventions là (car c'est une question de conventions) :
    - la 1ère semaine commence le 1er dimanche d'une année, le samedi et les jours précédents étant des jours de la dernière semaine de l'année précédente.
    Si une autre convention que celle-ci est retenue, il suffit de modifier le code en conséquence.

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je ne modifie alors que le traitement de coucou !

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    en france toutes les semaines commencent un lundi
    la semaine 1 est la première semaine contenant un jeudi
    il ne s'agit pas d'une convention mais d'une norme

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Comme je ne pense pas, d'une part, que le développement informatique doive être dépendant de normes et que, d'autre part, Windows considère que le Dimanche est le premier jour de la semaine... et pour preuve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub preuve_Click()
      alala = DateValue("01/01/2006")
      MsgBox WeekDay(alala) & " " & Format(alala, "dddd,mm,yyyy")
    end sub
    Voilà de quoi satisfaire chacun tout en restant totalement indépendant...
    Sur une form : un bouton de command command1 et 2 optionButtons option1 et option2 (je n'ai pas voulu faire un groupe de contrôles pour rester compatible avec VBA également)
    et le code suivant :

    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
    Private norme As Integer
     
     
    Private Sub Command1_Click()
      alala = DateValue("01/01/2006")
      toto = 1 ' ici le numéro de la semaine concernée
      'MsgBox WeekDay(alala) & " " & Format(alala, "dddd,mm,yyyy")
      coucou = WeekDay(alala) ' celà est le numéro de jour Windows, qui considère que Dimanche est
                              ' le jour 1, lui.
      'on va maintenant s'y prndre pour que le calcul soit toujours bon, quel que soit le jour
      'retenu comme étrant le 1er jour de la semaine... et tout le monde sera d'accord. Le
      'développement informatique n'est pas là pour obéir à des normes mais pour obéir à
      'un cahier des charges... et celui-ci peut varier. Alors...
      If coucou - norme = norme Then
         dep = alala + ((toto - 1) * 7) + 1 - norme
      Else
        dep = alala + (7 - (coucou - norme)) + ((toto - 1) * 7) + 1
      End If
      For i = 0 To 6
        MsgBox dep + i
      Next
    End Sub
     
    Private Sub Form_Load()
      Option1.Value = False
      Option2.Value = True
      norme = 1
      Option1.Caption = "on considère que la semaine commence un dimanche"
      Option2.Caption = "on considère que la semaine commence un lundi"
    End Sub
     
    Private Sub Option1_Click()
     norme = 0
    End Sub
     
    Private Sub Option2_Click()
     norme = 1
    End Sub
    lancez, choisissez votre norme et voyez...
    et évitez, s'il vous plait, un "MOUARF" en faisant remarquer qu'il suffit de calculer à la norme "windows" puis d'ajouter un jour à la date de départ de la semaine à détailler, pour être à la norme française (enfin... je vous conseille de réfléchir avant au bug que celà entraînerait....)

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    juste pour m'excuser de ne pas avoir repondu plus tôt, mais j'ai pas eut accès a Internet ce week, donc forcement ca aide pas. Quoi qu'il en soit merci pour vos réponses, je vais regarder ça dès que j'ai 5 minutes.

  10. #10
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    J'ai fait un petit test: Sur une Form, un controle Slider (inclus dans les Microsoft Windows Common Controls 6.0) et un ListBox.

    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
    Private Sub Form_Load()
        AfficherSemaine Slider1.Value
    End Sub
     
    Private Sub Slider1_Change()
        AfficherSemaine Slider1.Value
    End Sub
     
    Private Sub AfficherSemaine(NoSemaine As Integer)
        Dim premJan As Date, premJourSem As Date
        Dim i As Integer
        List1.Clear
        premJan = CDate("01/01/" & Year(Date))
        premJourSem = premJan + 7 * (NoSemaine - 1)
        For i = 0 To 6 ' une semaine
            List1.AddItem Format(premJourSem + i, "dd\/mm\/yyyy")
        Next
    End Sub
    les \ servent à forcer l'affichage du / si le séparateur de date est autre dans les paramètres régionaux.

    [Edit] J'ai oublié de mentionner que les valeurs des propriétés Min et Max du Slider sont respectivement 1 et 52.

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/08/2013, 21h11
  2. retourner avec la date d'une semaine avant
    Par zerkos dans le forum Langage
    Réponses: 1
    Dernier message: 12/03/2012, 05h38
  3. récupérer les dates d'une semaine
    Par nicerico dans le forum Langage
    Réponses: 3
    Dernier message: 26/07/2010, 20h32
  4. [D7] trouver une semaine partir d'une date
    Par raoulmania dans le forum Langage
    Réponses: 3
    Dernier message: 01/12/2005, 10h36
  5. Comment obtenir la date de début d'une semaine ?
    Par Vodkha dans le forum Langage
    Réponses: 5
    Dernier message: 19/08/2005, 09h54

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