Maison > développement back-end > C++ > Comment calculer une date à partir d'un numéro de semaine en C# à l'aide de la norme ISO 8601 ?

Comment calculer une date à partir d'un numéro de semaine en C# à l'aide de la norme ISO 8601 ?

Linda Hamilton
Libérer: 2025-01-14 13:12:43
original
722 Les gens l'ont consulté

How to Calculate a Date from a Week Number in C# Using ISO 8601?

Calculer la date en fonction du numéro de la semaine

De nombreuses tâches de programmation nécessitent de calculer la date correspondante en fonction d'un numéro de semaine donné. En C#, cela peut être réalisé en utilisant la norme ISO 8601.

La norme ISO 8601 commence la première semaine le premier jeudi de chaque année au lieu du lundi. Profitant de cette convention, le code suivant détermine avec précision le premier jour d'une semaine spécifique dans une année spécifiée :

<code class="language-csharp">public static DateTime FirstDateOfWeekISO8601(int year, int weekOfYear)
{
    DateTime jan1 = new DateTime(year, 1, 1);
    int daysOffset = DayOfWeek.Thursday - jan1.DayOfWeek;

    DateTime firstThursday = jan1.AddDays(daysOffset);
    var cal = CultureInfo.CurrentCulture.Calendar;
    int firstWeek = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

    var weekNum = weekOfYear;
    if (firstWeek == 1)
    {
        weekNum -= 1;
    }

    var result = firstThursday.AddDays(weekNum * 7);
    return result.AddDays(-3);
}</code>
Copier après la connexion

Ce code résout le cas où le premier jeudi n'est pas la première semaine de l'année. En soustrayant trois jours au premier jeudi, il renvoie correctement lundi comme premier jour de la semaine spécifiée selon la norme ISO 8601.

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