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. Angular - - ngHref、ngSrc、ngCopy/ngCut/ngPaste

    ngHref 在Angular程序没完成改变链接上用{{hash}}方式绑定的href值的时候,当用户点击该链接会跳到一个错误的页面. 格式:ng-href=”value” value:表达式. 使用 ...

  3. JQuery的$.each(list,function(i,a){} 中 i和a 未定义,a取不到值

    $.each(list,function(i,a){ var status = ""; if(a.status==0) status="未审核"; else i ...

  4. SoapUI:入门实例

    这一章中我们要掌握如下内容: 1)         构建项目: 2)         运行单个请求: 3)         构建测试用例: 4)         接口之间传递参数,组织测试步骤: 5) ...

  5. 导入礼包时,遇到file_get_contents读取的文本,去除空格、换行等的方法

    解决方法:正则替换: 代码:$gift_code_str = preg_replace('/((\s)*(\n)+(\s)*) /i ',',',file_get_contents($gift_cod ...

  6. 使用AOP的方式监测方法执行耗时

    在一些对系统中,往往可能需要对一些核心业务做相应的监测.如:记录调用参数,返回值,方法执行耗时等等.如果直接在方法的前后加入代码,如下: public int F(int a, string s) { ...

  7. 实际开发中,实用的辅助iOS开发的工具

    就目前所知,开发iOS绝大部分都是用Xcode,除此工具之外,还有几个好用的可以辅助实际开发中遇到的问题,拥有这种辅助开发技能,在工作中,甚至是以后的面试中,都可能会有不小的帮助. 下面推荐三个实用的 ...

  8. java_db常见错误总结

    1.java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符 在拼写seq时是否存在存在特殊字符,如:常见语句后面添加了;2.ORA-01722:无效数字解决 ...

  9. 重新学习WCF

    近来工作不怎么忙,一直在想一个问题,今年刚刚毕业,对于我们这应届生到底应该学习那些技术呢? 面对着现在技术横生,到底哪项是适合自己的呢?自己一直都在迷茫,若有那位大神再次经过,望给出您宝贵的建议. 最 ...

  10. android Android性能优化之如何避免Overdraw

    什么是Overdraw? Overdraw就是过度绘制   怎么来消灭overdraw呢?总的原则就是:尽量避免重叠不可见元素的绘制,基于这个原则,我们大概可以想出以下几招: 第一招:合理选择控件容器 ...