C#如何获取指定周的日期范围
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) 程序执行结果
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) 程序执行结果
C#如何获取指定周的日期范围相关推荐
- Oracle获取指定周次的周几的日期
/*************************************************功能描述:* 获取某一年的最大周次.**算法描述:* N/A**修订记录:* 修改时间 编辑人 修改 ...
- Oracle获取指定月最后一天日期(last_day函数)
获取指定月最后一天日期: select sysdate 当前日期,last_day(sysdate) 最后一天日期 from dual
- java获取指定周的第一天和最后一天(周统计报表)
项目中需要进行周统计,需要获取特定周的第一天和最后一天,然后在此时间范围内进行统计. /*** 获取指定周的第一天* * @param year* @param week* @return*/publ ...
- java获取指定周的第一天 及 指定周的 最后一天
文章目录 前言 获取指定周的第一天 及 指定周的 最后一天 前言 做记录用:有借鉴他人代码 获取指定周的第一天 及 指定周的 最后一天 public class WeekYearNum {//regi ...
- oracle中怎样获取一周的日期,Oracle如何获取某年每月第N周星期X的所有日期
Oracle如何获取某年每月第N周星期X的所有日期 要求:列出2012年每月第二周星期二的日期 两种理解: www.2cto.com 1.认为每周第一天为星期一(中国习惯),且需求为第二周周二(非第二 ...
- moment获取2周后日期
moment().add('days',14).format('YYYY年MM月DD日'); 转载于:https://www.cnblogs.com/shiyunfront/p/9275196.htm ...
- 获取指定日期所在周的每一天的日期(周一,周二,周三,周四,周五到周末 )
最近项目用到,特此记录. public class Test {public static void main(String[] args) {System.out.println(getNeedDa ...
- 根据所选日期、当前日期计算一周的日期和星期,农历
效果: 概述: 总共是两个js文件 date.js----获取周一到周日的日期和星期 nongli.js----日期转换农历 ** 目前网上搜到的很多的转农历只支持到2020年,2020年以后的算出来 ...
- java 获取指定月的最后一天
今天出现一个很奇怪的问题,使用calendar 来处理日期时,获取指定月的日期时,出现了一个异常,当这个月有31天时就是正确的,但如果不是31天结果就不对. /*** 获取某月的最后一天 如20171 ...
- 获取指定日期之间的各个周和月
2019独角兽企业重金招聘Python工程师标准>>> 日志格式化类 Date.class.php <?php class Datefmt{function __constru ...
最新文章
- 查看linux文件的权限:ls -l 文件名称
- 微分先行PID控制算法用C语言实现!
- SQL Server FOR XML PATH 语句的应用
- 动态分配的const对象
- Linux下SSH远程连接断开后让程序继续运行解决办法
- 如何将自定义的 Delegate 转成 Func 委托?
- 安防监控系统CIF、D1等格式的解释
- Android “再按一次退出“
- 逻辑回归能摆平二分类因变量,那……不止二分类呢?
- androidstudio自带git用法_Android Studio使用Git版本控制github
- 小鹏汽车窃密特斯拉实锤?前员工回应:确实上传过30万份Autopilot源码
- 如何用手机NFC代替小区门禁?
- POJ-2488 A Knights Journey-深度优先搜索DFS
- 数据库的四大事务特性
- 从矩阵谱分解到矩形的最少正方形剖分
- Redis数据结构-sds
- 淘宝API item_history_price - 获取商品历史价格信息
- 已会背诵英文文章 How To Boost Your Confidence
- ubuntu使用certbot给nginx添加ssl证书
- 微信小程序的事件处理,吊打面试官系列!
热门文章
- 【你也能看得懂的电磁场与电磁波系列连载 12】
- 计算机量子化学计算焓,本科毕业论文--量子化学计算的基本原理及应用.doc
- 计算机无法使用光驱启动,电脑怎么设置光驱启动 光驱启动设置教程【图文】...
- 【作业】【2.3标识符及其命名】
- 软件项目中得风险应对策略
- 错误代码741 因为文件名产生符号链接,所以需由对象管理器重新运行分析操作。
- vue关闭浏览器退出登录
- 跑马灯的一些使用心得
- Win7系统无法被远程桌面连接如何解决
- R语言安装ccgarch_R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测