Objectif: Générer des dates basées sur les numéros de semainecela peut-il être fait en utilisant LINQ/Lambda, C# 3.0
Entrée: StartDate, Semaine n °
Sortie: Liste des dates de la semaine nombre spécifié jusqu'au StartDate ie Si startdate est le 23 avril 2010 et que le numéro de la semaine est 1, alors le programme doit renvoyer les dates du 16 avril 2010 jusqu'au début du jour.
La fonction
public List<DateTime> GetDates(DateTime startDate,int weeks)
{
List<DateTime> dt = new List<DateTime>();
int days = weeks * 7;
DateTime endDate = startDate.AddDays(-days);
TimeSpan ts = startDate.Subtract(endDate);
for (int i = 0; i <= ts.Days; i++)
{
DateTime dt1 = endDate.AddDays(i);
dt.Add(dt1);
}
return dt;
}
J'appelle cette fonction
DateTime StartDate = DateTime.ParseExact("20100423", "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
List<DateTime> dtList = GetDates(StartDate, 1);
Le programme fonctionne bien.
La question utilise la fonctionnalité C# 3.0 comme Linq, Lambda etc. Puis-je réécrire le programme.
Pourquoi? Parce que j'apprends linq et lambda et que je veux appliquer la même chose. Mais à partir de maintenant, la connaissance n'est pas suffisante pour faire la même chose par moi-même.
Merci.
Ne pas oublier d'inclure ToList() afin qu'il corresponde à l'autre méthode en termes de production et de l'exécution immédiate. –