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. dev中TreeList的应用(转)

    如果需要在单元格添加时则用TreeList如果只是单纯读取数据或检索数据时则用GridControl 1.如果点击添加 时则添加TreeList的节点: protected internal void ...

  2. PHP新手之学习类与对象(3)

    四.访问控制 对属性或方法的访问控制,是通过在前面添加关键字 public.protected 或 private 来实现的.由 public 所定义的类成员可以在任何地方被访问:由 protecte ...

  3. Angular - - $templateCache 和 $templateRequest

    $templateCache 第一次使用模板,它被加载到模板缓存中,以便快速检索.你可以直接将模板标签加载到缓存中,或者通过$templateCache服务. 通过script标签: <scri ...

  4. C++ 常量类型 const 详解

    1.什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的.(当然,我们可以偷梁换柱进行更新:) 2.为什么引入const? const 推出的初始目的 ...

  5. MyEclipse 中 添加 js自动完成模版

    MyEclipse 中 添加 js自动完成模版: window>preference>MyEclipse>Files and Editors>JavaScript>Edi ...

  6. IE的缓存

    例:在IE中缓存是很难清掉的,用户也不会每次都给你点清理缓存,那是开发人员自己开发才会干的事,所以我们在对接数据的时候,最好采用异步刷新的方式,获取最新数据 方法如下: // 异步刷新,针对IE缓存的 ...

  7. python关于列表的操作

    列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类 ...

  8. HDU5057(分块)

    Argestes and Sequence Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  9. 为苹果ATS和微信小程序搭建 Nginx + HTTPS 服务

    昨天测试开发微信小程序,才发现微信也要求用HTTPS加密数据,想来是由于之前苹果的ATS审核政策的缘故吧,微信想在苹果上开放小程序必然也只能要求开发者必须使用HTTPS了,于是在服务器上测试安装Ngi ...

  10. CI Weekly #13 | 用更 Geek 的方式配置你的 CI 工作流

    flow.ci 的重大更新来了--支持通过 .yml 文件配置工作流(测试阶段),具体的使用方法可参考文档:同时 flow.ci 也开放了社区>> club.flow.ci,使用的任何问题 ...