Esempio n. 1
0
        public static DateTime GetStartOfYearWeek(int year, int weekOfYear, CultureInfo culture, CalendarWeekRule weekRule,
                                                  DayOfWeek firstDayOfWeek, WeekOfYearRuleKind weekOfYearRuleKind) {
            culture.ShouldNotBeNull("culture");
            weekOfYear.ShouldBePositive("weekOfYear");

            DateTime dateTime = new DateTime(year, 1, 1).AddDays(weekOfYear * TimeSpec.DaysPerWeek);
            int currentYear;
            int currentWeek;

            GetWeekOfYear(dateTime, culture, weekRule, firstDayOfWeek, weekOfYearRuleKind, out currentYear, out currentWeek);


            // end date of week
            while(currentWeek != weekOfYear) {
                dateTime = dateTime.AddDays(-1);
                GetWeekOfYear(dateTime, culture, weekRule, firstDayOfWeek, weekOfYearRuleKind, out currentYear, out currentWeek);
            }

            // end of previous week
            while(currentWeek == weekOfYear) {
                dateTime = dateTime.AddDays(-1);
                GetWeekOfYear(dateTime, culture, weekRule, firstDayOfWeek, weekOfYearRuleKind, out currentYear, out currentWeek);
            }

            return dateTime.AddDays(1);
        }