• .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);


    效果:


  • 相关阅读:
    关于XCode5打开工程闪退的一种解决方案
    【转】iOS应用崩溃日志揭秘
    Cocos2d-X中字符串的处理
    【转】不要把大脑当做磁盘
    【ybt金牌导航6-3-2】区间计数(分块)(二分)
    【luogu P3807】【模板】卢卡斯定理/Lucas 定理(含 Lucas 定理证明)
    【ybt金牌导航6-2-2】【luogu CF600E】树上众数 / Lomsat gelral(树上启发式合并)
    【ybt金牌导航6-1-5】最大割(线段树分治)(线性基)
    【luogu CF1100F】Ivan and Burgers
    【ybt金牌导航8-1-4】【luogu P4151】路径最大异或和 / 最大XOR和路径
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3327354.html
Copyright © 2020-2023  润新知