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. SQL Server 2005入门到精通(案例详解)

    SQL Server 2005基础应用   一.数据库的基本操作 --创建数据库 create database new_db2 on primary ( name='new.mdf', filena ...

  2. PHP cookie禁用时session 方案

    在PHP中使用过SESSION的朋友可能会碰到这么一个问题,SESSION变量不能跨页传递.这令我苦恼了好些日子,最终通过查资料思考并解决了这个问题.我认为,出现这个问题的原因有以下几点: 1.客户端 ...

  3. cookie记忆换肤功能实战Demo

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  4. mysql 语句总结

    1.多表查询 SELECT a.id,catid,thumb,title FROM v9_gamedown as a LEFT JOIN v9_gamedown_data as b ON a.id=b ...

  5. Storm InvalidTopologyException: null

    异常信息: backtype.storm.generated.InvalidTopologyException: null at backtype.storm.daemon.common$valida ...

  6. 微信小程序t填坑之旅一(接入)

    一.小程序简介 小程序是什么? 首先"程序"这两个字我们不陌生.看看你手机上的各个软件,那就是程序.平时的程序是直接跑在我们原生的操作系统上面的.小程序是间接跑在原生系统上的.因为 ...

  7. Android之com.nostra13.universalimageloader加载图片抛出OutOfMemroyError错误的多种解决办法

    com.nostra13.universalimageloader是用来加载图片非常好的框架,但是也有问题,一旦图片过多的话,很容易就会提示OutOfMemroyError错误,也就是内存溢出的问题, ...

  8. asp.net权限认证:Forms认证

    asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...

  9. javascript 终止函数执行操作

    1.如果终止一个函数的用return即可,实例如下:function testA(){    alert('a');    alert('b');    alert('c');}testA(); 程序 ...

  10. Unsupported major.minor version 52.0错误解决 Ubuntu JDK8 安装配置

    Unsupported major.minor version 52.0错误一般是因为应用程序需要JDK8而ubuntu默认的是jdk7,所以需要切换到jdk8才能解决这个问题. 本文使用PPA方式安 ...