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

ASP.NET Discussion :

Premier jour d'une semaine


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut Premier jour d'une semaine
    Bonjour

    Je voudrais obtenir la date du premier jour d'une semaine
    par exemple la date du lundi de la semaine 23 de l'année 2012
    Pouvez-vous m'indiquer comment faire

    Merci pour vos réponses

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    Bonjour, moi je procéderais de la façon suivante : Tu vas chercher la date du premier jour de l'année. Tu additionne ton nombre de semaines. Ensuite tu ajuste selon le jour de la semaine que tu veux. Si c'est le lundi que tu veux avoir, ça devrait ressembler à quelque chose du genre :

    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
     
            private DateTime GetFirstDayOfWeekNb(int weekNb)
            {
                DateTime date = new DateTime(DateTime.Now.Year, 1, 1);
                date = date.AddDays(7 * weekNb);
                switch (date.DayOfWeek)
                {
                    case DayOfWeek.Sunday :
                        date = date.AddDays(1);
                        break;   
                    //Fait la même chose avec les autres jours de la semaine                 
                    default : 
                        break;
                }
                return date;
            }
    J'espère que ça t'aideras!

  3. #3
    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 749
    Points
    39 749
    Par défaut
    C'est nettement moins facile que ça en a l'air... mais tu as de la chance, c'est implémenté dans la dernière version de la librairie Dvp.NET

    Ajoute une référence à Dvp.NET dans ton projet (manuellement ou avec Nuget), et importe le namespace Developpez.Dotnet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime monday = DateExtensions.GetStartOfWeek(2012, 23); // 28/05/2012
    L'approche de duffmere est astucieuse, mais en l'état elle ne fonctionne pas... il faudrait faire quelques ajustements. De plus elle ne gère pas le cas général (prise en compte des différentes règles pour le calcul du numéro de la semaine, du premier jour de la semaine vu que ce n'est pas le lundi dans tous les pays, etc)

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    Cela ressemble au code á Duffmere mais c'est composé maison
    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 static DateTime GetMonday(DateTime dtNow)
        {
            if (dtNow.DayOfWeek == DayOfWeek.Saturday || dtNow.DayOfWeek == DayOfWeek.Sunday)
            {
                do
                {
                    dtNow = dtNow.AddDays(-1);
                }
                while (dtNow.DayOfWeek != DayOfWeek.Monday);
            }
            else
            {
                if (dtNow.DayOfWeek != DayOfWeek.Monday)
                {
                    do
                    {
                        dtNow = dtNow.AddDays(-1);
                    }
                    while (dtNow.DayOfWeek != DayOfWeek.Monday);
                }
            }
            return dtNow;
        }

  5. #5
    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 749
    Points
    39 749
    Par défaut
    Citation Envoyé par tortuegenie Voir le message
    Cela ressemble au code á Duffmere mais c'est composé maison
    Euh, c'est cool, mais ça répond pas du tout à la question

    Citation Envoyé par Vanessa48
    par exemple la date du lundi de la semaine 23 de l'année 2012

  6. #6
    Membre actif Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Points : 284
    Points
    284
    Par défaut
    Euh, c'est cool, mais ça répond pas du tout à la question
    Ah si, si je me trompe pas en combinant les deux methodes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     private DateTime GetFirstDayOfWeekNb(int weekNb)
            {
                DateTime date = new DateTime(DateTime.Now.Year, 1, 1);
                date = date.AddDays(7 * weekNb);
     
                return GetMonday(date);
            }

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Je voudrais prendre la solution de TomLev mais j'ai Visual Studio 2005 c'est possible quand meme

    Car si je veux faire cela :
    NuGet s'installe sous forme d'une extension de Visual Studio. Choisissez "Gestionnaire d'extensions" dans le menu Outils, allez dans la catégorie "Galerie en ligne", et tapez "nuget" dans le champ de recherche en haut à droite. Sélectionnez "NuGet Package Manager", et cliquez sur "Télécharger" :

    Je n'ai pas dans outils, de gestionnaire d'extensions

  8. #8
    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 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Vanessa48 Voir le message
    Je voudrais prendre la solution de TomLev mais j'ai Visual Studio 2005 c'est possible quand meme
    Non, il faut au moins VS2008 (.NET 3.5) car la librairie utilise beaucoup Linq
    Cela dit tu peux toujours reprendre le code ici :
    http://projets.developpez.com/projec...eExtensions.cs

    Citation Envoyé par Vanessa48 Voir le message
    Car si je veux faire cela :
    NuGet s'installe sous forme d'une extension de Visual Studio. Choisissez "Gestionnaire d'extensions" dans le menu Outils, allez dans la catégorie "Galerie en ligne", et tapez "nuget" dans le champ de recherche en haut à droite. Sélectionnez "NuGet Package Manager", et cliquez sur "Télécharger" :

    Je n'ai pas dans outils, de gestionnaire d'extensions
    Pour Nuget il faut avoir VS2010

  9. #9
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    Ma solution devrait fonctionner aussi

  10. #10
    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 749
    Points
    39 749
    Par défaut
    Citation Envoyé par tortuegenie Voir le message
    Ma solution devrait fonctionner aussi
    Pas dans le cas général ; ça donne les bons résultats pour la règle de la "première semaine complète", en considérant le lundi comme premier jour de la semaine. Or la règle utilisée habituellement est celle de la "première semaine de 4 jours", et la semaine ne commence pas partout le lundi...

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/03/2009, 09h38
  2. recherche premier jour d'une semaine
    Par lazzeroni dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 08/06/2008, 17h03
  3. Premier jour d'une semaine et le dernier
    Par Philippe608 dans le forum Excel
    Réponses: 4
    Dernier message: 25/05/2008, 14h28
  4. Réponses: 4
    Dernier message: 11/02/2008, 14h41
  5. [Dates] Comment obtenir le premier jour d'une semaine ?
    Par damien.vinouze dans le forum Langage
    Réponses: 8
    Dernier message: 09/05/2007, 08h26

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