Je veux créer une fonction qui prend le mois et l'année et retourne List<DateTime>
rempli avec toutes les dates de ce mois.
Toute aide sera appréciée
Merci d'avance
Je veux créer une fonction qui prend le mois et l'année et retourne List<DateTime>
rempli avec toutes les dates de ce mois.
Toute aide sera appréciée
Merci d'avance
Voici une solution avec LINQ :
public static List<DateTime> GetDates(int year, int month)
{
return Enumerable.Range(1, DateTime.DaysInMonth(year, month)) // Days: 1, 2 ... 31 etc.
.Select(day => new DateTime(year, month, day)) // Map each day to a date
.ToList(); // Load dates into a list
}
Et un autre avec une boucle "for" :
public static List<DateTime> GetDates(int year, int month)
{
var dates = new List<DateTime>();
// Loop from the first day of the month until we hit the next month, moving forward a day at a time
for (var date = new DateTime(year, month, 1); date.Month == month; date = date.AddDays(1))
{
dates.Add(date);
}
return dates;
}
Vous pourriez envisager de renvoyer une séquence de dates en continu au lieu de List<DateTime>
laissant à l'appelant le choix de charger les dates dans une liste ou un tableau, de les post-traiter, de les itérer partiellement, etc. Pour la version LINQ, vous pouvez réaliser cela en supprimant l'appel à ToList()
. Pour la boucle "for", vous voudrez mettre en œuvre une fonction itérateur . Dans les deux cas, le type de retour doit être modifié en IEnumerable<DateTime>
.
Voilà :
public List<DateTime> AllDatesInAMonth(int month, int year)
{
var firstOftargetMonth = new DateTime(year, month, 1);
var firstOfNextMonth = firstOftargetMonth.AddMonths(1);
var allDates = new List<DateTime>();
for (DateTime date = firstOftargetMonth; date < firstOfNextMonth; date = date.AddDays(1) )
{
allDates.Add(date);
}
return allDates;
}
Interroge les dates depuis le premier du mois souhaité jusqu'à la dernière date inférieure au premier du mois suivant.
PS : S'il s'agit d'un travail à la maison, merci de l'accompagner de la mention "travail à la maison" !
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.