Comment trouver le dernier jour du mois en C #?
Par exemple, si j'ai la date 03/08/1980, comment puis-je obtenir le dernier jour du mois 8 (dans ce cas 31)?
Comment trouver le dernier jour du mois en C #?
Par exemple, si j'ai la date 03/08/1980, comment puis-je obtenir le dernier jour du mois 8 (dans ce cas 31)?
Réponses:
Le dernier jour du mois, vous obtenez comme ceci, qui renvoie 31:
DateTime.DaysInMonth(1980, 08);
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
DateTime
partir du lastDayOfMonth
. Honnêtement, dans les deux cas, cela fonctionne parfaitement bien. C'est un argument pédant qui est le meilleur. Je l'ai fait dans les deux sens et les deux donnent la même réponse.
Soustrayez une journée du premier du mois prochain:
DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month+1,1).AddDays(-1);
De plus, au cas où vous en auriez besoin pour travailler aussi en décembre:
DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month,1).AddMonths(1).AddDays(-1);
Vous pouvez trouver le dernier jour du mois par une seule ligne de code:
int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;
DateTime.DaysInMonth
pourquoi quelqu'un devrait chercher cette manière illisible et complexe pour y parvenir!? - Mais comme une solution valable est acceptable;).
De DateTimePicker:
Premier rendez-vous:
DateTime first_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, 1);
Dernier rendez-vous:
DateTime last_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, DateTime.DaysInMonth(DateTimePicker.Value.Year, DateTimePicker.Value.Month));
Pour obtenir le dernier jour d'un mois dans un calendrier spécifique - et dans une méthode d'extension -:
public static int DaysInMonthBy(this DateTime src, Calendar calendar)
{
var year = calendar.GetYear(src); // year of src in your calendar
var month = calendar.GetMonth(src); // month of src in your calendar
var lastDay = calendar.GetDaysInMonth(year, month); // days in month means last day of that month in your calendar
return lastDay;
}
// Use any date you want, for the purpose of this example we use 1980-08-03.
var myDate = new DateTime(1980,8,3);
var lastDayOfMonth = new DateTime(myDate.Year, myDate.Month, DateTime.DaysInMonth(myDate.Year, myDate.Month));
var myDate = new DateTime(1980, 1, 31);
(retourne le 29)
Je ne connais pas C # mais, s'il s'avère qu'il n'y a pas de moyen API pratique pour l'obtenir, l'une des façons de le faire est de suivre la logique:
today -> +1 month -> set day of month to 1 -> -1 day
Bien sûr, cela suppose que vous ayez des mathématiques de date de ce type.