c#根据年月获取所有日期集合、根据年份计算总周数,根据年份和周数获取一周的开始及结束时间
//根据年月获取所有日期//txt="2019-04"public List<string> CalTime(string txt) {DateTime beginTime=DateTime.Parse(txt+"-01");//本月初DateTime endTime=DateTime.Parse( beginTime.AddMonths(1).AddDays(-1).ToShortDateString());//本月最后一天List<string> dateList = new List<string>();for (DateTime dt = beginTime; dt <= endTime; dt = dt.AddDays(1)){dateList.Add(dt.ToShortDateString());}return dateList;}
/// <summary>/// 周的第一天/// CalendarWeekRule.FirstDay, DayOfWeek.Sunday/// </summary>/// <param name="year"></param>/// <param name="week"></param>/// <returns></returns>public static DateTime FirstDateOfWeek(int year, int week){if (year < 1 || year > 9999)throw new ArgumentException("illegal year", "year");int maxWeek = MaxWeekOfYear(year);if (week < 1 || week > maxWeek)throw new ArgumentException("illegal week", "week");if (week == 1)return new DateTime(year, 1, 1);DateTime firstDayOfYear = new DateTime(year, 1, 1);DateTime day = firstDayOfYear.AddDays((week - 1) * 7);DateTime ret = day.AddDays(-Convert.ToInt32(day.DayOfWeek));return ret;}
/// <summary>/// 周的最后一天/// </summary>/// <param name="year"></param>/// <param name="week"></param>/// <returns></returns>public static DateTime LastDateOfWeek(int year, int week){if (year < 1 || year > 9999)throw new ArgumentException("illegal year", "year");int maxWeek = MaxWeekOfYear(year);if (week < 1 || week > maxWeek)throw new ArgumentException("illegal week", "week");DateTime ret;DateTime firstDay = FirstDateOfWeek(year, week);if (week == 1)//week==1{ret = firstDay.AddDays(6 - Convert.ToInt32(firstDay.DayOfWeek));}else//week>1{DateTime tempDay = firstDay.AddDays(6);DateTime yearLastDay = new DateTime(year, 12, 31);if (tempDay > yearLastDay)ret = yearLastDay;elseret = tempDay;}return ret;}
/// <summary>/// 一年有几周/// </summary>/// <param name="year"></param>/// <returns></returns>public static int MaxWeekOfYear(int year){if (year < 1 || year > 9999)throw new ArgumentException("illegal year", "year");int maxDays = (DateTime.IsLeapYear(year) ? 366 : 365);DayOfWeek firstDayOfWeek = new DateTime(year, 1, 1).DayOfWeek;int beforeFirstSunday = (7 - Convert.ToInt32(firstDayOfWeek)) % 7;int remainDays = maxDays - beforeFirstSunday;int ret = (beforeFirstSunday % 7 == 0 ? 0 : 1);ret += (remainDays / 7);ret += (remainDays % 7 == 0 ? 0 : 1);return ret;}
c#根据年月获取所有日期集合、根据年份计算总周数,根据年份和周数获取一周的开始及结束时间相关推荐
- 获取指定日期的常用前后节点(月初月末周一周末等等)
获取指定日期的常用前后节点(月初月末周一周末等等) 原文:获取指定日期的常用前后节点(月初月末周一周末等等) 注:周节点方面是根据中国习惯,视周一为起,周日为末. /*---------------- ...
- Android日期加任意天数计算方式
需求 最近遇到了一个需求,任意一个日期 加10天,再加20天,再加30天,应该怎么计算?要考虑大小月(30天/31天),如果是2月还要考虑平年闰年.想想都会很头疼.一大推逻辑等着自己处理. andro ...
- axure 怎么看距离_AXURE 怎么获取当天日期,并计算该日期距离年底还有多少天?...
展开全部 1.怎么获取当天日期 Axure中有专62616964757a686964616fe78988e69d8331333365666161门的时间函数,获取当天日期可以使用以下几个函数: [[N ...
- JS获取指定日期前后N天的日期、前N个月日期、后N个月日期
今天做项目遇到了,获取相对于当前日期前30天的时间,结合网上资料,做了一份整理. 一.获取指定日期前或者后指定间隔时间代码 function getNowFormatDate(sdate,interv ...
- JavaScript JS获取指定日期的前几天或者后几天(默认后1天)
/** * JavaScript 获取指定日期的前几天或者后几天的日期 * @param date {string} 日期 如:2022-07-12 * @param day {number} ...
- vue项目——获取指定日期是周几和第几周的信息——表格展示
最近在写后台管理系统,遇到以下的要求,就是要展示 年月日和周几和第几周的情况. 下面记录一下用到的函数: 1.跟据日期获取第几周 //根据日期获取第几周 getWeek(dateTime) {var ...
- Shell 获取指定日期 N 天/月/年前(后)的日期
0 前 言 我们有时候在写批处理 Shell 脚本时,可能需要获取指定日期前(后) N 天/月/年的日期,这里的 N 可以是 1 天/月/年.2 天/月/年.3 天/月/年等等.方法其实很简单,这里做 ...
- 使用Calendar类获取指定日期所在年/月份、周第一天、最后一天
最近做项目有涉及需要获取指定日期或当前日期所在月份和周第一和最后一天,结合网上的资料和自己项目开发记录,记录下用到的这些方法. 目录 1.获取指定年份的第一天和最后一天 2. 获取指定日期月份第一天和 ...
- 获取某个日期的上个月与下个月
获取某个日期的上个月(日期格式为 xxxx-xx-xx) <script type="text/javascript">alert(getPreMonth('2018- ...
最新文章
- 高性能网站建设的14个原则
- python 库整理:toolz.curried (整理中)
- 从使用角度看何为zookeeper
- mysql重装远程服务未_CentOS 7系统安装与远程连接MySQL(5.7)
- 学习算法导论-红黑树之摘录
- SAP Kyma和Marketing Cloud的连接 - Marketing Cloud里的配置
- Android App性能測试
- 4-6:TCP协议之滑动窗口
- iOS 关于真机和模拟器framework合并
- 表单提交后打印后台传过来的数据
- 云计算8项核心技术分析
- 网络游戏植入营销案例
- Docker学习笔记08-----Docker Harbor使用详解
- ubuntu 键盘输入法为空_Ubuntu12下键盘输入中文设置 - 卡饭网
- TFIDF理解和应用
- Python Interpreter
- IDEA改变文件夹显示方式
- 微信扫码充值 php,微信扫码支付,php版
- 《Linux Device Driver》——时间、延迟及延缓操作
- Java基础面试题1:面向对象的思想