/// <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时间计算函数,统计某一天是一年的第几周,这一周从哪天开始到哪天结束的更多相关文章

  1. mysql中时间计算函数SQL DATE_SUB()用法

    本文为博主原创,未经允许不得转载: 在写sql的时候,经常要在sql中传值时间,对时间进行计算并过滤.之前都是将时间在后台计算好,直接传值给sql, 今天发现,有一个更方便的sql函数,可以简化很多代 ...

  2. opencv学习笔记——时间计算函数getTickCount()和getTickFrequency()

    cv::getTickCount()可以用来测量一段代码的运行时间,这个函数返回从上次开机算起的时钟周期数. 由于我们需要的是某个代码段运行的毫秒数,因此还需要另一个函数cv::getTickFreq ...

  3. 程序时间计算函数(被tle出阴影来了)

    初次意识到程序的时间复杂度(tle多了 ) 第一次写博客(被大佬们的博客所折服orz) 拿打素数表的程序为例 优化前代码: #include<iostream> #include<c ...

  4. MySQL 获得当前日期时间\时间戳 函数 ( 转自传智播客)

    MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +-------+ | now() | +-- ...

  5. MySQL 获得当前日期时间\时间戳 函数

    MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +———————+ | now() | +—— ...

  6. Mysql日期转换函数、时间转换函数

    Mysql日期转换函数.时间转换函数 一.MySQL 获得当前日期时间 函数 1,获得当前日期+时间(date + time)函数:now(): select now(); 结果: :: 2,获得当前 ...

  7. mysql中时间日期函数

    转自:mysql 中 时间和日期函数 一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +- ...

  8. mysql中返回当前时间的函数或者常量

    引用:http://blog.sina.com.cn/s/blog_6d39dc6f0100m7eo.html 1.1 获得当前日期+时间(date + time)函数:now() 除了 now() ...

  9. C# .Net计算函数执行的时间

    C#计算函数执行的时间 protected void StopwatchTest() { System.Diagnostics.Stopwatch stopwatch = new System.Dia ...

随机推荐

  1. 关于NGINX下开启PHP-FPM 输出PHP错误日志的设置(已解决)

    最近在本地搭建的LNMP的开发环境.为了开发的时候不影响前端的正常开发就屏蔽的PHP里面php.ini中的一些错误提示.但是这样一来,就影响到了后端开发的一些问题比如不能及时调试开发中的一些问题. n ...

  2. js 获取月份 格式yy-mm-dd

    /** * 获取上一个月 * * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 */ function getPreMonth(date) { var arr = date. ...

  3. Linux下安装QT和OpenGL后QT无法使用OpenGL的解决方法

    我的系统为Ubuntu14.04,用apt-get安装了实现了OpenGl的mesa,QT则是用官网下载的run文件来安装的. 好了,现在两个都分别有了,所以要在qt下尝试写OpenGl代码. 之前试 ...

  4. MYSQL 错误日志

    背景知识 : 就算我们不配置mysql的错误文件,它也会有一个默认的,在data文件夹下保存(.err文件) 还好这个文件保存在哪我们还是可以配置的 配置方法: log-err=E:\DB\mysql ...

  5. 将Python代码嵌入C++程序进行编写

    将Python代码嵌入C++程序进行编写的实例,python嵌入 把python嵌入的C++里面需要做一些步骤 安装python程序,这样才能使用python的头文件和库 在我们写的源文件中增加“Py ...

  6. 一次性关闭所有的Activity

    原文:一次性关闭所有的Activity 一次性关闭所有的Activity ActivityManager am = (ActivityManager)getSystemService (Context ...

  7. Gdal 1.11.0 添加 Postgresql 9.1 sqlite3 支持

    OS环境Ubuntu12.04 32bit 因为公司一个功能要用到gdal 的ogr2ogr命令转换shp数据,需要能往postgis和sqlite 中插入数据. 用gdal1.11.0的源码默认安装 ...

  8. 基于Qt的图像采集系统

    硬件 Point Gray Camera 型号:FL3-U3-13S2C-CS 参数 Sony IMX035 CMOS, 1/3", 3.63 µm Rolling Shutter 1328 ...

  9. 汉诺塔III 汉诺塔IV 汉诺塔V (规律)

    汉诺塔III Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  10. Python的中文编码转换问题

    与server进行数据交换时,尤其是数据中含有中文时,要注意中文的编码问题. 要选择server接受的编码方式,否则会造成显示乱码. 经验: 实验室server的数据库,中文用UTF-8编码,但我提交 ...