日期格式转换--年 月 周数 日

///


        /// 年 月 周数 日 字符串数组
        ///

        /// 需要转换的日期
        ///
        public string[] getYearMonthWeekDayOfDate(DateTime dt)
        {
            string[] YearMonthWeekDay = new string[4];
            YearMonthWeekDay[0] = dt.Year.ToString();
            YearMonthWeekDay[1] = dt.Month.ToString();
            YearMonthWeekDay[2] = "W" + getWeekNumberOfMonth(dt).ToString();
            YearMonthWeekDay[3] = dt.Day.ToString();
            return YearMonthWeekDay;
        }
        ///
        /// 获取日期的周数
        ///

        /// 需要转换的日期
        ///
        public int getWeekNumberOfMonth(DateTime dt)
        {
            DateTime monthStartDate = DateTime.Parse(dt.Year.ToString() + "-" + dt.Month.ToString() + "-" + "01");
            DateTime monthEndDate = monthStartDate.AddMonths(1);
            int difference = getWeekDifference(monthStartDate.DayOfWeek.ToString(), "Sunday");
            if (dt <= monthStartDate.AddDays(difference) && dt <= monthEndDate)
            {
                return 1;
            }
            else if (dt < monthStartDate.AddDays(difference + 7 + 1) && dt < monthEndDate)
            {
                return 2;
            }
            else if (dt < monthStartDate.AddDays(difference + 7 * 2 + 1) && dt < monthEndDate)
            {
                return 3;
            }
            else if (dt < monthStartDate.AddDays(difference + 7 * 3 + 1) && dt < monthEndDate)
            {
                return 4;
            }
            else if (dt < monthStartDate.AddDays(difference + 7 * 4 + 1) && dt < monthEndDate)
            {
                return 5;
            }
            else
            {
                return 6;
            }
        }
        ///
        /// 结果小于-7或大于7,传入参数错误
        ///

        /// 起始DayOfWeek
        /// 结束DayOfWeek
        ///
        public int getWeekDifference(string start, string end)
        {
            int difference = getWeek(end) - getWeek(start);
            return difference;
        }
        ///
        /// DayOfWeek转week
        ///

        /// DayOfWeek
        ///
        public week getWeek(string strWeek)
        {
            switch (strWeek)
            {
                case "Sunday":
                    return week.Sunday;
                case "Monday":
                    return week.Monday;
                case "Tuesday":
                    return week.Tuesday;
                case "Wednesday":
                    return week.Wednesday;
                case "Thursday":
                    return week.Thursday;
                case "Friday":
                    return week.Friday;
                case "Saturday":
                    return week.Saturday;
                default:
                    return week.Wrong;
            }
        }
        public enum week
        {
            ///
            /// 星期天
            ///

            Sunday = 7,
            ///
            /// 星期一
            ///

            Monday = 1,

            ///


            /// 星期二
            ///

            Tuesday = 2,

            ///


            /// 星期三
            ///

            Wednesday = 3,

            ///


            /// 星期四
            ///

            Thursday = 4,

            ///


            /// 星期五
            ///

            Friday = 5,

            ///


            /// 星期六
            ///

            Saturday = 6,
            ///
            ///
            ///

            Wrong = 0,
        }

转载于:https://www.cnblogs.com/chaodongwang/archive/2009/10/28/1591264.html

你可能感兴趣的:(日期格式转换--年 月 周数 日)