欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.Net时间计算函数,统计某一天是一年的第几周,这一周从哪天开始到哪天结束

程序员文章站 2022-06-26 08:56:28
 ///           /// 计算某年第一周的天数   &nbs...
 /// <summary>

 

        /// 计算某年第一周的天数

        /// </summary>

        /// <param name="dt">某年中的一个时间</param>

        /// <returns></returns>

        public static int DaysInFirstweekInYear(DateTime dt)

        {

            DateTime FirstDate = Convert.ToDateTime(string.Format("{0}-1-1", dt.Year));

            int DayOfWeekInYear = DayOfWeek(FirstDate);

            int DaysInFirstWeek = 8 - DayOfWeekInYear;

            return DaysInFirstWeek;

        }

 

        /// <summary>

        /// 一年中的第几周

        /// </summary>

        /// <param name="dt"></param>

        /// <returns></returns>

        public static int WeekOfYear(DateTime dt)

        {

            int days = DaysInFirstweekInYear(dt);

            int dayofyear = dt.DayOfYear;

            if (dayofyear < days) return 1;

            else

            {

                int week2 = (int)Math.Ceiling((double)(dayofyear - days) / (double)7);

                return week2 + 1;

            }

        }

        /// <summary>

        /// 传入某一天,输出这一周的起始日期

        /// </summary>

        /// <param name="dt"></param>

        /// <returns></returns>

        public static DateTime[] DatesIncludeDay(DateTime dt)

        {

            DateTime[] dts = new DateTime[2];

            int dayofweek = DayOfWeek(dt);

            dts[0] = dt.AddDays(1 - dayofweek);

            dts[1] = dt.AddDays(7 - dayofweek);

            return dts;

        }

        /// <summary>

        /// 计算星期几,转换为数字

        /// </summary>

        /// <param name="dt">某天的日期</param>

        /// <returns></returns>

        public static int DayOfWeek(DateTime dt)

        {

            string strDayOfWeek = dt.DayOfWeek.ToString().ToLower();

            int intDayOfWeek = 0;

            switch (strDayOfWeek)

            {

                case "monday":

                    intDayOfWeek = 1;

                    break;

                case "tuesday":

                    intDayOfWeek = 2;

                    break;

                case "wednesday":

                    intDayOfWeek = 3;

                    break;

                case "thursday":

                    intDayOfWeek = 4;

                    break;

                case "friday":

                    intDayOfWeek = 5;

                    break;

                case "saturday":

                    intDayOfWeek = 6;

                    break;

                case "sunday":

                    intDayOfWeek = 7;

                    break;

            }

            return intDayOfWeek;

        }

 

 

 

 

调用:

 

    DateTime dt = Convert.ToDateTime("2013-1-6");

    Dictionary<string, DateTime> dict = new Dictionary<string, DateTime>();

    dict.Add("0001", DateTime.Now.AddDays(-100));

    dict.Add("0002", DateTime.Now.AddDays(-99));

    dict.Add("0003", DateTime.Now.AddDays(-98));

    dict.Add("0004", DateTime.Now.AddDays(-97));

    dict.Add("0005", DateTime.Now.AddDays(-96));

    dict.Add("0006", DateTime.Now.AddDays(-95));

    dict.Add("0007", DateTime.Now.AddDays(-94));

    dict.Add("0008", DateTime.Now.AddDays(-93));

    dict.Add("0009", DateTime.Now.AddDays(-92));

    dict.Add("0010", DateTime.Now.AddDays(-91));

    dict.Add("0011", DateTime.Now.AddDays(-90));

    dict.Add("0012", DateTime.Now.AddDays(-89));

    dict.Add("0013", DateTime.Now.AddDays(-88));

    dict.Add("0014", DateTime.Now.AddDays(-87));

    dict.Add("0015", DateTime.Now.AddDays(-86));

    dict.Add("0016", DateTime.Now.AddDays(-85));

    dict.Add("0017", DateTime.Now.AddDays(0));

    dict.Add("0018", DateTime.Now.AddDays(1));

    dict.Add("0019", DateTime.Now.AddDays(2));

    string str = "";

    foreach(KeyValuePair<string,DateTime> kv in dict)

    {

        DateTime[] dts = Common.OperateText.DatesIncludeDay(kv.Value);

        str = str + string.Format("{0},第{1}周,时间{2:yyyy-MM-dd},本周从{3:yyyy-MM-dd}到{4:yyyy-MM-dd} <br/>",kv.Key,Common.OperateText.WeekOfYear(kv.Value),kv.Value,dts[0],dts[1]);

    }

 

Response.Write(str);

 

 

效果:.Net时间计算函数,统计某一天是一年的第几周,这一周从哪天开始到哪天结束