82 votes

Comment trouvez-vous le dernier jour du mois?

Dupliquer possible:
Comment obtenir le dernier jour d'un mois?

Jusqu'à présent, j'ai ceci:

 DateTime createDate = new DateTime(year, month, 1).AddMonths(1).AddDays(-1);
 

Y a-t-il un meilleur moyen?

211voto

Jon Skeet Points 692016

Que diriez-vous d'utiliser DaysInMonth :

 DateTime createDate = new DateTime (year, month,
                                    DateTime.DaysInMonth(year, month));
 

(Note à moi-même - cela doit être facile dans Noda Time ...)

21voto

Øyvind Bråthen Points 25211

Vous pouvez utiliser la méthode DateTime.DaysInMonth(year,month) pour obtenir le nombre de jours d'un mois donné.

6voto

Donald Points 926

Voici une approche élégante que j'ai trouvée dans une bibliothèque d'extension DateTime utile sur CodePlex:

http://datetimeextensions.codeplex.com/

Voici un exemple de code:

     public static DateTime First(this DateTime current)
    {
        DateTime first = current.AddDays(1 - current.Day);
        return first;
    }

    public static DateTime First(this DateTime current, DayOfWeek dayOfWeek)
    {
        DateTime first = current.First();

        if (first.DayOfWeek != dayOfWeek)
        {
            first = first.Next(dayOfWeek);
        }

        return first;
    }

    public static DateTime Last(this DateTime current)
    {
        int daysInMonth = DateTime.DaysInMonth(current.Year, current.Month);

        DateTime last = current.First().AddDays(daysInMonth - 1);
        return last;
    }
 

Il a également quelques autres extensions utiles qui pourraient vous être utiles.

2voto

Charles Bretana Points 59899
    var anyDt = DateTime.Now;
    var lastDayOfMonth = anyDt .AddMonths(1).AddDays(1 - anyDt.Day).Date;
 

ou comme méthode

 DateTime LastDayInMonth(DateTime anyDt)
   {  return anyDt.AddMonths(1).AddDays(1 - anyDt.Day).Date; }
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: