1. 不允许跨年

1) 第一周的第一天从每年的第一天开始,最后一周的最后一天为每年的最后一天。

 static void Main(string[] args)
 {
     DateTime first, last;
     , , ,  };
     , ,  };
     foreach (int y in years)
     {
         foreach (int w in weeks)
         {
             bool result = CalcWeekDay(y, w, out first, out last);
             Console.WriteLine("{0}第{1}周({2:yyyy-MM-dd} ~ {3:yyyy-MM-dd}) --{4}", y, w, first, last, result);
         }
         Console.WriteLine();
     }
 }  

 public static bool CalcWeekDay(int year, int week, out DateTime first, out DateTime last)
 {
     first = DateTime.MinValue;
     last = DateTime.MinValue;
     //年份超限
      || year > ) return false;
     //周数错误
      || week > ) return false;
     //指定年范围
     DateTime start = , );
     DateTime end = , );
     int startWeekDay = (int)start.DayOfWeek;  

     )
     {
         first = start;
         last = start.AddDays( - startWeekDay);
     }
     else
     {
         //周的起始日期
         first = start.AddDays(( - startWeekDay) + (week - ) * );
         last = first.AddDays();
         if (last > end)
         {
             last = end;
         }
     }
     return (first <= end);  

2) 程序执行结果

2. 允许跨年

1) 每年的尾周剩余天数计入下一年第一周。

 public static bool CalcWeekDay(int year, int week, out DateTime first, out DateTime last)
 {
     first = DateTime.MinValue;
     last = DateTime.MinValue;
     //年份超限
      || year > ) return false;
     //周数错误
      || week > ) return false;
     //指定年范围
     DateTime start = , );
     DateTime end = , );
     int startWeekDay = (int)start.DayOfWeek;
     //周的起始日期
     first = start.AddDays(( - startWeekDay) + (week - ) * );
     last = first.AddDays();
     //结束日期跨年
     return (last <= end);
 }  

2) 程序执行结果
 

C#如何获取指定周的日期范围的更多相关文章

  1. js获取一周前日期

    项目中需要设定默认开始时间为一周前,结束时间为现在,现在写一下如何用js获取一周前日期. 1 var time=(new Date).getTime()-7*24*60*60*1000; 2 var ...

  2. PHP获取一周的日期

    /** * 获取一周日期 * @param $time 时间戳 * @param $format 转换格式 */ function get_week($time, $format = "Y- ...

  3. c#获取指定时区的日期

    1.首先将服务器的时间转化为utc时间,然后转换成指定时区的日期 public DateTime GetSpecificZoneNowDate(string zoneName = "Chin ...

  4. C#获取指定月指定周的日期范围

    );        MessageBox.Show(end.ToShortDateString());

  5. js获取一周的日期范围

    function getWeek() { this.nowTime = new Date(); this.init = function() { this.dayInWeek = this.nowTi ...

  6. python获取指定星期的日期

  7. moment获取2周后日期

    moment().add('days',14).format('YYYY年MM月DD日');

  8. js日期计算及快速获取周、月、季度起止日,获取指定日期周数以及星期几的小例子

    JS获取日期时遇到如下需求,根据某年某周获取一周的日期.如开始日期规定为星期四到下一周的星期五为一周. 格式化日期: function getNowFormatDate(theDate) { var ...

  9. C#获取指定日期为一年中的第几周

    /// <summary> /// 获取指定日期,在为一年中为第几周 /// </summary> /// <param name="dt">指 ...

随机推荐

  1. Java 之 Spring加载(Java之负基础实战)

    1.下载后解压 2.在WEB-INF里面创建lib文件夹 3.拖入jar包 只拖入*.RELEASE.jar包

  2. codeforces 755D. PolandBall and Polygon

    D. PolandBall and Polygon time limit per test 4 seconds memory limit per test 256 megabytes input st ...

  3. PHP根据URL提取根域名

    <?php #使用示例 echo getBaseDomain('http://blog.jp.goo.ne.jp/index.php')->domain;echo "\n&quo ...

  4. Sublime Text3 常用快捷键动画演示及优秀插件分享

    Sublime Text 是前端的一个神器,以其精简和可DIY而让广大fans疯狂.好吧不吹了直入正题 -_-!! 首先是安装,如果你有什么软件管家的话搜一下就好,一键安装.然后,有钱的土豪就自己买个 ...

  5. magento1.x 运行在 php7 优惠券的问题

    diff --git app/code/core/Mage/Sales/etc/config.xml index 5bb43d7..7db62ca 100644 --- app/code/core/M ...

  6. mac bash_profile

    # This is the filename where your incoming mail arrives. MAIL=~/mbox MAILCHECK=30 HISTFILE=~/.histor ...

  7. ECMAScript 6 笔记(五)

    Iterator和for...of循环 1. Iterator(遍历器)的概念 Iterator接口的目的,就是为所有数据结构,提供了一种统一的访问机制,即for...of循环 遍历器(Iterato ...

  8. IOS9.0 之后友盟分享详细过程

    一: 申请友盟的AppKey(友盟的Key是根据应用的名称生成的!) 在友盟注册了你自己的开发者账号后就可以申请AppKey了.然后在这个方法里面设置Key - (BOOL)application:( ...

  9. C语言 memcpy二维数组的复制

    今天在实现二维数组的复制功能时,竟然出现了好多问题,还是太不小心了. 我们知道,平时进行矩阵复制,无非是二重循环进行赋值操作,所以今天想改用利用memcpy进行复制操作,当然一维数组的复制在上一篇文章 ...

  10. JS批量替换内容中关键词为超链接,避开已存在的链接和alt、title中的关键词

    懂点seo的人都知道要给内容中关键词加上链接,形成站内锚文本链接,这对seo有很大的帮助. 思路就是在数据库中录入若干个关键词和关键词对应的链接,当然链接可以根据关键词的id自动生成,或者直接用关键词 ...