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
Libérer: 2024-12-30 22:55:10
original
571 Les gens l'ont consulté

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);
Copier après la connexion

"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;
Copier après la connexion

"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);
Copier après la connexion

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);
}
Copier après la connexion

Utilisation Exemples

  • Aujourd'hui ou dans les 6 prochains jours :
DateTime nextTuesday = GetNextWeekday(DateTime.Today, DayOfWeek.Tuesday);
Copier après la connexion
  • Mardi prochain hors aujourd'hui :
DateTime nextTuesday = GetNextWeekday(DateTime.Today.AddDays(1), DayOfWeek.Tuesday);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal