计算指定年指定周的起止日期
2011-11-21 11:15
141 查看
搞个周计划,数据库设计只有年和周,客户还要看日期。。
木有办法,自己写来不及,网上找了段代码自己改了改。。
废话不多说,上代码。。
原文链接:http://hi.baidu.com/corbet/blog/item/1bb2982af3119329d42af1fd.html
木有办法,自己写来不及,网上找了段代码自己改了改。。
废话不多说,上代码。。
// <summary> /// 获取一年中指定的一周的开始日期和结束日期。开始日期遵循ISO 8601即星期一。 /// </summary> /// <remarks>Write by vrhero</remarks> /// <param name="year">年(1 到 9999)</param> /// <param name="weeks">周(1 到 53)</param> /// <param name="weekrule">确定首周的规则</param> /// <returns>成功返回 true,否则为 false。</returns> public bool GetDaysOfWeeks(int year, int weeks, CalendarWeekRule weekrule) { //初始化参数 DateTime first = DateTime.MinValue; DateTime last = DateTime.MinValue; //不用解释了吧 if (year < 1 | year > 9999) return false; //一年最多53周 if (weeks < 1 | weeks > 53) return false; //取当年首日为基准 DateTime firstCurr = new DateTime(year, 1, 1); //取下一年首日用于计算 DateTime firstNext = new DateTime(year + 1, 1, 1); //将当年首日星期几转换为数字 星期日特别处理 ISO 8601 标准 int dayOfWeekFirst = (int)firstCurr.DayOfWeek; if (dayOfWeekFirst == 0) dayOfWeekFirst = 7; //得到未经验证的周首日 first = firstCurr.AddDays((weeks - 1) * 7 - dayOfWeekFirst + 1); //周首日是上一年日期的情况 if (first.Year < year) { switch (weekrule) { case CalendarWeekRule.FirstDay: first = firstCurr; break; case CalendarWeekRule.FirstFullWeek: //顺延一周 first = first.AddDays(7); break; case CalendarWeekRule.FirstFourDayWeek: //周首日距年首日不足4天则顺延一周 if (firstCurr.Subtract(first).Days > 3) { first = first.AddDays(7); } break; default: break; } } //得到未经验证的周末日 last = first.AddDays(7).AddSeconds(-1); //周末日是下一年日期的情况 if (last.Year > year) { switch (weekrule) { case CalendarWeekRule.FirstDay: last = firstNext.AddSeconds(-1); break; case CalendarWeekRule.FirstFullWeek: //不用处理 break; case CalendarWeekRule.FirstFourDayWeek: //周末日距下一年首日不足4天则提前一周 if (firstNext.Subtract(first).Days < 4) { first = first.AddDays(-7); last = last.AddDays(-7); } break; default: break; } } return true; }
原文链接:http://hi.baidu.com/corbet/blog/item/1bb2982af3119329d42af1fd.html
相关文章推荐
- 计算指定日期是该年份的第多少天
- 根据指定两个日期计算出这些时间内有多少天是周末 php程序函数代码
- php实现指定日期之间的间隔天数计算方法
- java根据当前日期+指定天数(月份...)得到相应日期,计算两日期之差
- 指定日期计算星期几
- delphi中计算指定日期是该月第几周的函数
- FLEX实践—计算指定日期是当年/当月第几周
- 计算指定天数后的日期
- 计算指定日期的前一天、后一天
- Java计算指定日期的昨日
- 【C语言】计算指定日期是一年中第几天
- 笔记 指定n天间距日期的计算
- FLEX计算指定日期是当年的第几周
- 根据指定类型计算两个日期相差的时间
- 计算指定工作日后的日期
- JS计算指定日期是距今的第几周,星期几
- JavaScript计算指定日期与当前日期的相差天数
- [置顶] js日期处理---计算自然月、指定自然月某一天、获取前一天和后一天、判断闰年、当月最后一天日期、月末最后一天
- 根据指定两个日期计算出这些时间内有多少天是周末 php程序函数代码
- js日期计算及快速获取周、月、季度起止日,获取指定日期周数以及星期几的小例子