Maison > développement back-end > C++ > Comment déterminer avec précision le numéro de semaine d'une date?

Comment déterminer avec précision le numéro de semaine d'une date?

Susan Sarandon
Libérer: 2025-01-25 12:12:09
original
740 Les gens l'ont consulté

How to Accurately Determine the Week Number of a Date?

Calcul précis du numéro de semaine d'une date

Le calcul du numéro de semaine d'une date est une tâche de programmation fréquente, mais étonnamment complexe. Considérez le 31/12/2012 : de nombreuses méthodes renvoient incorrectement 53, alors qu'intuitivement, cela devrait être la semaine 1.

Le problème : les variations du calendrier

Le problème principal réside dans les incohérences du calendrier. Les calendriers .NET standard permettent aux semaines de franchir les limites de l'année, contrairement à la norme ISO 8601, qui conserve les semaines au cours d'une seule année.

La solution ISO 8601

Pour garantir l'exactitude, l'utilisation de la norme ISO 8601 est essentielle. La GetIso8601WeekOfYear méthode suivante, conforme à cette norme, identifie correctement le 31/12/2012 comme semaine 1.

public static int GetIso8601WeekOfYear(DateTime time)
{
    DayOfWeek day = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(time);
    if (day >= DayOfWeek.Monday && day <= DayOfWeek.Wednesday)
    {
        time = time.AddDays(3);
    }
    return CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(time, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
}
Copier après la connexion

Cette méthode garantit le calcul du numéro de semaine selon la norme ISO 8601, offrant des résultats cohérents et logiques.

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 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