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

C# Discussion :

numéro de semaine et date


Sujet :

C#

  1. #1
    Membre habitué Avatar de Mathieu.Nanoux
    Étudiant
    Inscrit en
    Février 2004
    Messages
    166
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 166
    Points : 137
    Points
    137
    Par défaut numéro de semaine et date
    Bonjour à tous,

    j'aimerai savoir s'il existe une méthode pour avoir les jours de la semaine correspondant à un numéro de semaine ?

    exemple : Semaine 39 de 2007
    Lundi : 24/09/2007
    Mardi : 25/09/2007
    ...
    Dimanche : 30/09/2007

    Merci.

  2. #2
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            private int GetWeekNumber(DateTime date)
            {
                Calendar calendar = Thread.CurrentThread.CurrentCulture.Calendar;
                CalendarWeekRule weekRule = Thread.CurrentThread.CurrentCulture.DateTimeFormat.CalendarWeekRule;
                DayOfWeek firstDayOfWeek = Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
     
                return calendar.GetWeekOfYear(date, weekRule, firstDayOfWeek);
            }

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Pas mal cette technique

  4. #4
    Membre habitué Avatar de LaNat
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Points : 164
    Points
    164
    Par défaut
    C'est pour récupérer le numéro de la semaine d'une date non?
    Il me semble qu'il veut les jours d'un n° de semaine donné

  5. #5
    Membre habitué Avatar de Mathieu.Nanoux
    Étudiant
    Inscrit en
    Février 2004
    Messages
    166
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 166
    Points : 137
    Points
    137
    Par défaut
    de fait, c'est récuperer les jours de la semaine pour un numéro donné qui m'interresse.

    Pour avoir le numéro de la semaine, j'utilisais la même technique que tu as marqué.

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    beh il me semble que

    Calendar.GetDayOfYear() devrait faire l'affaire alors ?

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  7. #7
    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
    Points : 6 334
    Points
    6 334
    Par défaut
    Prends la date du premier janvier et fais un AddWeeks du nombre de semaines qui t'intéresse.
    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

  8. #8
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Désolé pour la mauvaise info, j'ai mal lu le premier thread.

  9. #9
    Membre habitué Avatar de Mathieu.Nanoux
    Étudiant
    Inscrit en
    Février 2004
    Messages
    166
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 166
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par neptune Voir le message
    Désolé pour la mauvaise info, j'ai mal lu le premier thread.
    ca arrive, pas de problème

    Citation Envoyé par SaumonAgile Voir le message
    Prends la date du premier janvier et fais un AddWeeks du nombre de semaines qui t'intéresse.
    mais le premier janvier ne tombe pas obligatoirement un lundi chaque année, donc ca ne vas pas.

    Je dois recuperer le lundi du numéro de la semaine.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 27
    Points : 33
    Points
    33
    Par défaut
    Salut,

    je tente une petite fonction (pas testée), mais il doit exister sûrement plus simple... Ca devrait renvoyer un dico avec les jours de la semaine en clé et les structs datetime en valeur. ca devrait marcher pour un calendrier normé ISO (la semaine n°1 est la première à contenir au moins quatre jours).

    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
    private Dictionary<DayOfWeek,DateTime> GetWeekDetails(int week, int year)
            {
                if (week > 52 || week < 1) return null;
     
                Dictionary<DayOfWeek, DateTime> resultat = new Dictionary<DayOfWeek, DateTime>();
     
                System.Globalization.Calendar cal = System.Threading.Thread.CurrentThread.CurrentCulture.Calendar;
     
                //1er jour de l'année désirée pour le système de calendrier de la culture du thread actuel
                DateTime dt = new DateTime(year, 1, 1, cal);
     
                //se positionner sur le premier jour de la semaine numéro 1.
                while (cal.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday) != 1)
                {
                    dt = dt.AddDays(1);
                }
     
                //se postionner sur le premier jour de la semaine désirée
                dt = cal.AddWeeks(dt, week - 1);
     
                //remplir le dico
                for (int i = 0; i < 7; i++)
                {
                    resultat.Add(dt.DayOfWeek, dt);
     
                    dt = dt.AddDays(1);
                }
     
                return resultat;
            }

Discussions similaires

  1. [Crystal] transformation d'une date en numéro de semaine
    Par barna dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 24/03/2017, 09h41
  2. [Toutes versions] Formule - Passage d'un numéro de semaine à une date
    Par Gado2600 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/04/2015, 10h07
  3. [Dates] Convertir un numéro de semaine en date
    Par Popop56 dans le forum Langage
    Réponses: 4
    Dernier message: 14/11/2009, 12h54
  4. Conversion numéro de semaine en date
    Par soleilgym64 dans le forum VBA Access
    Réponses: 6
    Dernier message: 01/10/2009, 15h22
  5. Numéro de semaine, module Date::Calc
    Par djezair31 dans le forum Langage
    Réponses: 1
    Dernier message: 22/12/2008, 14h13

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