Maison >développement back-end >C++ >Comment puis-je calculer la date du jour de la semaine suivant dans .NET ?

Comment puis-je calculer la date du jour de la semaine suivant dans .NET ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 22:55:10586parcourir

How Can I Calculate the Date of the Next Weekday in .NET?

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

  • Aujourd'hui ou dans les 6 prochains jours :
DateTime nextTuesday = GetNextWeekday(DateTime.Today, DayOfWeek.Tuesday);
  • Mardi prochain hors aujourd'hui :
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn