zoukankan      html  css  js  c++  java
  • .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);


    效果:


  • 相关阅读:
    常用字段类型
    触发事件中的sender
    $符号基本用法$() ${} $(())
    expect语法
    apt 和 apt-get的区别
    python字符串中 r'', b'', u'', f'' 的含义
    linux正则表达式
    Linux下apt-get命令详解(安装、卸载、更新、查询软件包)
    创建linux service服务
    Ubuntu下deb包的解包、打包
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3327354.html
Copyright © 2011-2022 走看看