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

Windows Forms Discussion :

[VB.NET] Obtenir le numéro de la semaine d'une date


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [VB.NET] Obtenir le numéro de la semaine d'une date
    Bonjour,

    je voudrais récupérer le numéro de la semaine d'une date.
    Cette date est selectionnée dans un formulaire affichant un MonthCalendar.
    Le month calendar permet d'afficher le numéro de la semaine à coté de celle ci dans le formulaire, mais je n'arrive pas a trouver ce numéro de semaine dans le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    _ObjDbPlanning.An = CType(CalendarPlanning.SelectionStart.Year, Integer)
     _ObjDbPlanning.Mois = CType(CalendarPlanning.SelectionStart.Month, Integer)
    Je ne trouve pas l'attribut 'week' alors que sont présent Year, Month et Day.

    Je pense que ca doit etre tout simple mais ca fait 2 heures que je cherche, donc je commence a saturer...
    Donc si quelqu'un a deja fait ca...
    d'avance MERCI!

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Salut,

    Essaies avec la fonction :

    DatePart(DateInterval.WeekOfYear, <ta date à convertir>)

    en principe cela fonctionne bien!!

  3. #3
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    Ah tiens je vais tester j'faisais un truc plus compliqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CultureInfo myCI = new CultureInfo("fr-FR"); 
    System.Globalization.Calendar myCal = myCI.Calendar; 
     
    CalendarWeekRule myCWR = myCI.DateTimeFormat.CalendarWeekRule; 
    DayOfWeek myFDOW = myCI.DateTimeFormat.FirstDayOfWeek; 
     
    int weekOfYear =  myCal.GetWeekOfYear( MADATE, myCWR, myFDOW );

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup!!!

    En fait j'essayais a toute fin d'obtenir la semaine directement, mais c vrai qu'apres quelques heures de recherche, et bien ca n'existe pas!
    j'aurais du penser plsu vite a chercher dans les fonctions de date...

    Merci encore, je suis bien content que ca fonctionne!
    bye!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Johan31
    Ah tiens je vais tester j'faisais un truc plus compliqué
    Continue. DatePart fait partie de Microsoft.VisualBasic, donc poubelle. C'est dommage qu'ils n'aient pas mis de méthode pour faire ça directement depuis l'objet Calendar de la culture en cours sans avoir à se taper les deux autres paramètres, mais bon.

    Pour faire ça crade mais en une ligne, il y a toujours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int weekOfYear = CultureInfo.Current.Calendar.GetWeekOfYear( date, CultureInfo.Current.DateTimeFormat.CalendarWeekRule, CultureInfo.Current.DateTimeFormat.FirstDayOfWeek )
    :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  6. #6
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    J'me disais j'le trouvais ce DatePart...
    Pourquoi tu dis que c'est crade ton code? j'aime bien!
    Mais le current? ca prend la culture de ton ordi?

  7. #7
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Maniak a écrit:
    DatePart fait partie de Microsoft.VisualBasic, donc poubelle.
    Pourquoi?
    car je developpe sous visual, et apparemment ca marche...
    alors je voudrais savoir pourquoi l'autre code est meilleur...

    Merci!

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Johan31
    Pourquoi tu dis que c'est crade ton code? j'aime bien!
    Bah une ligne de 3km de long qui va chercher 3 fois la culture en cours et 2 fois le truc de format de date/heure, ça me chatouille :)
    Au minimum je mettrais le DateTimeFormat dans une variable avant, histoire de. Mais c'est du chipotage, on est d'accord (cf pseudo :)

    Citation Envoyé par Johan31
    Mais le current? ca prend la culture de ton ordi?
    La culture du système oui.

    Citation Envoyé par alain&&thomas
    Maniak a écrit:
    DatePart fait partie de Microsoft.VisualBasic, donc poubelle.
    Pourquoi?
    car je developpe sous visual, et apparemment ca marche...
    alors je voudrais savoir pourquoi l'autre code est meilleur...
    Parce que DatePart n'est pas du .NET. C'est du VB6.

    L'autre code permet de ne pas avoir de code spécifique à un langage et de toujours utiliser les mêmes objets du framework .NET pour le même genre d'opérations. Pas un bout en .NET et un autre via des fonctions recollées de VB6 pour ne pas perdre les habitués.
    Ça permet aussi de ne pas être limité à la culture du système mais de pouvoir se baser sur n'importe laquelle.

    Plus généralement, les objets présents dans System.Globalization permettent de faire à peu près tout ce qu'il faut quand il s'agit de dates/heures (si on excepte les fuseaux horaires :). S'éparpiller en allant piocher des fonctions VB6, c'est inutile, crade, pas portable d'un langage à l'autre, ...

    Même chose pour les fonctions Replace & co que certains VBeux utilisent au lieu de faire avec les méthodes Replace & co de la classe String.



    (pi c'est du VB6 procédural, et ça pue :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci bcp Master56, je galérais bien avant de tomber sur ce post.

    Ton code est simple et marche très bien

  10. #10
    Membre confirmé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Points : 457
    Points
    457
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MsgBox(DatePart(DateInterval.WeekOfYear, "31/12/2009"))
    Donne 53
    La Connaissance est comme la joie elle s'accroît en la partageant!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/05/2011, 09h05
  2. obtenir le numéro de semaine d'une date et vis-et-versa ?
    Par clavier12AZQSWX dans le forum Flash/Flex
    Réponses: 1
    Dernier message: 18/08/2009, 18h16
  3. [Dates] Obtenir le numéro de la semaine courante
    Par aromot dans le forum Langage
    Réponses: 4
    Dernier message: 30/12/2008, 14h48
  4. Récupérer le numéro de la semaine sur une date
    Par bagbones dans le forum SQL
    Réponses: 11
    Dernier message: 30/07/2008, 14h18
  5. Réponses: 14
    Dernier message: 10/08/2006, 15h53

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