GetYearAndWeek() публичный статический Метод

해당일자의 주차를 구한다. 문화권(Culture) 및 새해 첫주차에 대한 정의에 따라 주차가 달라진다. ref : http://www.simpleisbest.net/archive/2005/10/27/279.aspx ref : http://en.wikipedia.org/wiki/ISO_8601#Week_dates
CalendarWeekRule 값에 따라 WeekOfYear 가 결정된다. FirstDay : 1월1일이 포함된 주를 무조건 첫째 주로 삼는다. (우리나라, 미국 등의 기준) : .NET의 설정대로 하면 이렇게 된다. FirstForDayWeek : 1월1일이 포함된 주가 4일 이상인 경우에만 그 해의 첫 번째 주로 삼는다. (ISO 8601) 예) 한 주의 시작 요일이 일요일이고 1월1일이 일/월/화/수 중 하나이면 1월1일이 포함된 주는 해당 해의 첫 번째 주이다. 예) 한 주의 시작 요일이 일요일이고 1월1일이 목/금/토 중 하나이면 1월1일이 포함된 주는 해당 해의 첫 번째 주로 간주하지 않는다. 예) 2005년 1월 1일은 토요일이므로 1월1일이 포함된 주는 2005년의 첫 번째 주로 간주하지 않는다. FirstFullWeek : 1월의 첫 번째 주가 7일이 아니면 해당 해의 첫 번째 주로 삼지 않는다. 예) 한 주의 시작 요일이 일요일인 경우, 1월1일이 일요일이 아니라면 1월1일이 포함된 주는 해당 해의 첫 번째 주로 간주하지 않는다.
public static GetYearAndWeek ( this moment, CultureInfo culture = null, WeekOfYearRuleKind weekOfYearRule = WeekOfYearRuleKind.Calendar, int yearStartMonth = TimeSpec.CalendarYearStartMonth ) : YearAndWeek
moment this 주차(WeekOfYear)를 산정하기 위한 일자
culture System.Globalization.CultureInfo 해당 Calendar를 얻기위한 문화권
weekOfYearRule WeekOfYearRuleKind 주차를 산정하는 방식
yearStartMonth int 한 해의 시작 월
Результат YearAndWeek
Пример #1
0
        public static void GetWeekOfYear(this DateTime moment, CultureInfo culture, CalendarWeekRule weekRule, DayOfWeek firstDayOfWeek,
                                         WeekOfYearRuleKind weekOfYearRule, out int year, out int weekOfYear)
        {
            var yearAndWeek = WeekTool.GetYearAndWeek(moment, culture, weekOfYearRule);

            year       = yearAndWeek.Year ?? 0;
            weekOfYear = yearAndWeek.Week ?? 0;

            //culture.ShouldNotBeNull("culture");


            //// NOTE: ISO 8601이 FirstFourDayWeek, Monday를 기준으로 하는데 왜 이렇게 하는지 모르겠네?
            ////
            //if(weekOfYearRule == WeekOfYearRuleKind.Iso8601 && weekRule == CalendarWeekRule.FirstFourDayWeek && firstDayOfWeek == DayOfWeek.Monday)
            //{
            //    //
            //    // NOTE: see http://blogs.msdn.com/b/shawnste/archive/2006/01/24/517178.aspx
            //    //
            //    var day = culture.Calendar.GetDayOfWeek(moment);
            //    if(day >= DayOfWeek.Monday && day <= DayOfWeek.Wednesday)
            //    {
            //        moment = moment.AddDays(3);
            //    }
            //}

            //weekOfYear = culture.Calendar.GetWeekOfYear(moment, weekRule, firstDayOfWeek);
            //year = moment.Year;
            //if(weekOfYear >= 52 && moment.Month < 12)
            //{
            //    year--;
            //}
        }
Пример #2
0
 public static YearAndWeek GetWeekOfYear(this DateTime moment, CultureInfo culture, CalendarWeekRule weekRule,
                                         DayOfWeek firstDayOfWeek, WeekOfYearRuleKind weekOfYearRule)
 {
     return(WeekTool.GetYearAndWeek(moment, culture, weekOfYearRule));
 }
Пример #3
0
 public static YearAndWeek GetWeekOfYear(this DateTime moment, CultureInfo culture, WeekOfYearRuleKind weekOfYearRule)
 {
     return(WeekTool.GetYearAndWeek(moment, culture, weekOfYearRule));
 }