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