Détermination de la date d'un jour de la semaine à venir dans .NET
Le concept de « le jour de la semaine suivant » peut être ambigu, car il dépend de le jour actuel de la semaine. Voici quelques façons d'aborder cela en C# à l'aide de la bibliothèque .NET :
"Le mardi prochain doit se produire, ou aujourd'hui si c'est déjà mardi"
Cette approche renvoie le mardi le plus proche, qui tombe aujourd'hui ou une date ultérieure :
DateTime today = DateTime.Today; int daysUntilTuesday = ((int)DayOfWeek.Tuesday - (int)today.DayOfWeek + 7) % 7; DateTime nextTuesday = today.AddDays(daysUntilTuesday);
"Dans une semaine, même si c'est déjà mardi"
Cette approche renvoie le mardi suivant, mais saute une semaine si c'est déjà mardi :
int daysUntilTuesday = (((int)DayOfWeek.Monday - (int)today.DayOfWeek + 7) % 7) + 1;
"Demain ou le mardi prochain se produira, ou Demain si c'est mardi"
Cette approche revient le mardi suivant, mais commence à partir de demain pour éviter une semaine supplémentaire delay :
DateTime tomorrow = DateTime.Today.AddDays(1); int daysUntilTuesday = ((int)DayOfWeek.Tuesday - (int)tomorrow.DayOfWeek + 7) % 7; DateTime nextTuesday = tomorrow.AddDays(daysUntilTuesday);
Méthode polyvalente pour n'importe quel jour de la semaine
Pour gérer n'importe quel jour de la semaine, créez une méthode générique GetNextWeekday qui prend un DateTime et un DayOfWeek en entrée :
public static DateTime GetNextWeekday(DateTime start, DayOfWeek day) { int daysToAdd = ((int) day - (int) start.DayOfWeek + 7) % 7; return start.AddDays(daysToAdd); }
Utilisation Exemples
DateTime nextTuesday = GetNextWeekday(DateTime.Today, DayOfWeek.Tuesday);
DateTime nextTuesday = GetNextWeekday(DateTime.Today.AddDays(1), DayOfWeek.Tuesday);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!