Torna al Thread

/// <summary> /// Restituisce la data del lunedì del numero di settimana voluto /// Es. FirstDateOfWeek(2013, 5, CalendarWeekRule.FirstFourDayWeek) /// </summary> public static DateTime FirstDateOfWeek(int year, int weekNum, CalendarWeekRule rule) { DateTime jan1 = new DateTime(year, 1, 1); int daysOffset = DayOfWeek.Monday - jan1.DayOfWeek; DateTime firstMonday = jan1.AddDays(daysOffset); int firstWeek = Utility.WeekOfYearISO8601(firstMonday); if (firstWeek <= 1) { weekNum--; } return firstMonday.AddDays(weekNum * 7).Date; } public static int WeekOfYearISO8601(DateTime date) { var day = (int)CultureInfo.CurrentCulture.Calendar.GetDayOfWeek(date); return CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(date.AddDays(4 - (day == 0 ? 7 : day)), CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); }
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5