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


        

           /// <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);


    效果:


  • 相关阅读:
    javascript检测浏览器插件
    登陆注册数据库设计与任务分配
    做网站的一些定律原理和效应
    为什么我们应该像盖房子那样写程序?
    最近项目中遇到的一些设计问题
    反向代理缓存
    《你必须知道的.NET》读书笔记
    锋利的Jquery读书笔记
    将pdf转成jpg格式
    《你必须知道的.NET》第五章读书笔记
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3327354.html
Copyright © 2020-2023  润新知