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 :

Obtenir le premier jour


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Par défaut Obtenir le premier jour
    Bonjour,

    Comment obtenir le premier jour de chaque semaine d'un mois donné .(asp.net)

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Bnj,

    J'ai vu un blog qui parle de ça :
    http://joelabrahamsson.com/entry/get...k-with-c-sharp.

    Désolé je l'ai pas vu de prés.

    Bonne courage.

    Regarde les commentaires aussi

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Le premier jour de chaque semaine tombe un lundi

  4. #4
    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 : 43
    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
    Par défaut
    Citation Envoyé par PitMaverick78 Voir le message
    Le premier jour de chaque semaine tombe un lundi
    En es-tu si sûr ?
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void Main()
    {
        PrintFirstDayOfWeek("fr-FR");
        PrintFirstDayOfWeek("en-US");
        PrintFirstDayOfWeek("ar-SA");
    }
     
    void PrintFirstDayOfWeek(string cultureName)
    {
        CultureInfo culture = CultureInfo.GetCultureInfo(cultureName);
        Console.WriteLine("{0}: {1}",
            culture.DisplayName,
            culture.DateTimeFormat.FirstDayOfWeek);
    }

    Ce code affiche le résultat suivant :

    French (France): Monday
    English (United States): Sunday
    Arabic (Saudi Arabia): Saturday
    Eh oui, le premier jour de la semaine n'est pas le même selon les pays...

    Question intéressante, en tous cas

    J'ai un peu cherché et je suis arrivé à ce code pour trouver les premiers jours de la semaine d'un mois donné :


    Code C# : 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
    public IEnumerable<DateTime> FirstDayOfEachWeek(int year, int month)
    {
        return FirstDayOfEachWeek(year, month, CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek);
    }
     
    public IEnumerable<DateTime> FirstDayOfEachWeek(int year, int month, DayOfWeek firstDayOfWeek)
    {
        // On se place sur le premier jour du mois
        DateTime day = new DateTime(year, month, 1);
     
        // Si ce n'est pas le premier jour de la semaine,
        // on cherche le début de la prochaine semaine
        if (day.DayOfWeek != firstDayOfWeek)
        {
            int diff = (firstDayOfWeek - day.DayOfWeek + 7) % 7;
            day = day.AddDays(diff);
        }
     
        // On avance de semaine en semaine tant qu'on n'a pas changé de mois
        while (day.Month == month)
        {
            yield return day;
            day = day.AddDays(7);
        }
    }

    La première méthode utilise le premier jour de la semaine de la culture courante, la seconde permet de le spécifier explicitement

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    C'était évidemment une petite boutade!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DateTime FirstDayOfMonth(int year, int month, DayOfWeek day)
    {
    	return Enumerable.Range(1,7).Select(i=>new DateTime(year,month,i)).First(d=>d.DayOfWeek ==day);
    }
     
    IEnumerable<DateTime> DaysOfMonth(int year, int month, DayOfWeek day)
    {
    	var firstDay = FirstDayOfMonth(year,month,day);
    	return Enumerable.Range(0,5).Select(i=>firstDay.AddDays(7*i)).TakeWhile(d=>d.Month==month && d.Year==year);
    }

  6. #6
    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 : 43
    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
    Par défaut
    Jolie la solution Linq

    Mais je pense que la mienne est (un peu) plus rapide

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Mais je pense que la mienne est (un peu) plus rapide
    Je te l'accorde (C'est juste que je suis dans ma période Comment mettre du LINQ partout pour voir!)


  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 : 43
    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
    Par défaut
    Citation Envoyé par PitMaverick78 Voir le message
    (C'est juste que je suis dans ma période Comment mettre du LINQ partout pour voir!)
    Je connais ça

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/02/2008, 14h41
  2. [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
  3. [D7] Obtenir le premier caractère d'un TField
    Par plante20100 dans le forum Langage
    Réponses: 6
    Dernier message: 18/10/2005, 14h05
  4. Obtenir le 1er jour du mois d'une date
    Par soso78 dans le forum Access
    Réponses: 4
    Dernier message: 27/09/2005, 12h15
  5. Récupérez premier jour de la semaine
    Par Krapulax dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/10/2003, 17h18

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