1. 不允许跨年

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

static void Main(string[] args)
{DateTime first, last;int[] years = new int[] { 2015, 2016, 2017, 2018 };int[] weeks = new int[] { 1, 52, 53 };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;//年份超限if (year < 1700 || year > 9999) return false;//周数错误if (week < 1 || week > 53) return false;//指定年范围DateTime start = new DateTime(year, 1, 1);DateTime end = new DateTime(year, 12, 31);int startWeekDay = (int)start.DayOfWeek;if (week == 1){first = start;last = start.AddDays(6 - startWeekDay);}else{//周的起始日期first = start.AddDays((7 - startWeekDay) + (week - 2) * 7);last = first.AddDays(6);if (last > end){last = end;}}return (first <= end);
}

2) 程序执行结果

blob.png

2. 允许跨年

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

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

2) 程序执行结果
 blob.png

C#如何获取指定周的日期范围相关推荐

  1. Oracle获取指定周次的周几的日期

    /*************************************************功能描述:* 获取某一年的最大周次.**算法描述:* N/A**修订记录:* 修改时间 编辑人 修改 ...

  2. Oracle获取指定月最后一天日期(last_day函数)

    获取指定月最后一天日期: select sysdate 当前日期,last_day(sysdate) 最后一天日期 from dual

  3. java获取指定周的第一天和最后一天(周统计报表)

    项目中需要进行周统计,需要获取特定周的第一天和最后一天,然后在此时间范围内进行统计. /*** 获取指定周的第一天* * @param year* @param week* @return*/publ ...

  4. java获取指定周的第一天 及 指定周的 最后一天

    文章目录 前言 获取指定周的第一天 及 指定周的 最后一天 前言 做记录用:有借鉴他人代码 获取指定周的第一天 及 指定周的 最后一天 public class WeekYearNum {//regi ...

  5. oracle中怎样获取一周的日期,Oracle如何获取某年每月第N周星期X的所有日期

    Oracle如何获取某年每月第N周星期X的所有日期 要求:列出2012年每月第二周星期二的日期 两种理解: www.2cto.com 1.认为每周第一天为星期一(中国习惯),且需求为第二周周二(非第二 ...

  6. moment获取2周后日期

    moment().add('days',14).format('YYYY年MM月DD日'); 转载于:https://www.cnblogs.com/shiyunfront/p/9275196.htm ...

  7. 获取指定日期所在周的每一天的日期(周一,周二,周三,周四,周五到周末 )

    最近项目用到,特此记录. public class Test {public static void main(String[] args) {System.out.println(getNeedDa ...

  8. 根据所选日期、当前日期计算一周的日期和星期,农历

    效果: 概述: 总共是两个js文件 date.js----获取周一到周日的日期和星期 nongli.js----日期转换农历 ** 目前网上搜到的很多的转农历只支持到2020年,2020年以后的算出来 ...

  9. java 获取指定月的最后一天

    今天出现一个很奇怪的问题,使用calendar 来处理日期时,获取指定月的日期时,出现了一个异常,当这个月有31天时就是正确的,但如果不是31天结果就不对. /*** 获取某月的最后一天 如20171 ...

  10. 获取指定日期之间的各个周和月

    2019独角兽企业重金招聘Python工程师标准>>> 日志格式化类 Date.class.php <?php class Datefmt{function __constru ...

最新文章

  1. 查看linux文件的权限:ls -l 文件名称
  2. 微分先行PID控制算法用C语言实现!
  3. SQL Server FOR XML PATH 语句的应用
  4. 动态分配的const对象
  5. Linux下SSH远程连接断开后让程序继续运行解决办法
  6. 如何将自定义的 Delegate 转成 Func 委托?
  7. 安防监控系统CIF、D1等格式的解释
  8. Android “再按一次退出“
  9. 逻辑回归能摆平二分类因变量,那……不止二分类呢?
  10. androidstudio自带git用法_Android Studio使用Git版本控制github
  11. 小鹏汽车窃密特斯拉实锤?前员工回应:确实上传过30万份Autopilot源码
  12. 如何用手机NFC代替小区门禁?
  13. POJ-2488 A Knights Journey-深度优先搜索DFS
  14. 数据库的四大事务特性
  15. 从矩阵谱分解到矩形的最少正方形剖分
  16. Redis数据结构-sds
  17. 淘宝API item_history_price - 获取商品历史价格信息
  18. 已会背诵英文文章 How To Boost Your Confidence
  19. ubuntu使用certbot给nginx添加ssl证书
  20. 微信小程序的事件处理,吊打面试官系列!

热门文章

  1. 【你也能看得懂的电磁场与电磁波系列连载 12】
  2. 计算机量子化学计算焓,本科毕业论文--量子化学计算的基本原理及应用.doc
  3. 计算机无法使用光驱启动,电脑怎么设置光驱启动 光驱启动设置教程【图文】...
  4. 【作业】【2.3标识符及其命名】
  5. 软件项目中得风险应对策略
  6. 错误代码741 因为文件名产生符号链接,所以需由对象管理器重新运行分析操作。
  7. vue关闭浏览器退出登录
  8. 跑马灯的一些使用心得
  9. Win7系统无法被远程桌面连接如何解决
  10. R语言安装ccgarch_R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测