25 个解决方案
#1
<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
var day = date.getDay();
var today = date.getDate();
if (day == 0) day = 7;
return (today + day) / 7;
}
alert(reDate(2007, 03, 23));
</script>
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
var day = date.getDay();
var today = date.getDate();
if (day == 0) day = 7;
return (today + day) / 7;
}
alert(reDate(2007, 03, 23));
</script>
#2
@.@
晕。。等我改下。。
晕。。等我改下。。
#3
var date1 = new Date();
var date2 = new Date(date1.getFullYear(),date1.getMonth(),1);
var weekcount = Math.ceil((date1.getDate() + date2.getDay()) / 7);
alert("今天是本月第" + weekcount + "周");
var date2 = new Date(date1.getFullYear(),date1.getMonth(),1);
var weekcount = Math.ceil((date1.getDate() + date2.getDay()) / 7);
alert("今天是本月第" + weekcount + "周");
#4
<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
var day = date.getDay(), today = date.getDate(), d;
if (day == 0) day = 7;
d = today - Math.abs((today - day) % 7 - (today > day ? 0 : 1));
return Math.ceil(d / 7) + 1;
}
alert(reDate(2007, 03, 23));
alert(reDate(2007, 02, 15));
</script>
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
var day = date.getDay(), today = date.getDate(), d;
if (day == 0) day = 7;
d = today - Math.abs((today - day) % 7 - (today > day ? 0 : 1));
return Math.ceil(d / 7) + 1;
}
alert(reDate(2007, 03, 23));
alert(reDate(2007, 02, 15));
</script>
#5
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay())/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay())/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
#6
需要的话加个简单的方法就可以了
//函数 获取输入的参数的日期的星期数
function weekcount(year,month,day)//参数 年 月 日
{
var date1 = new Date(year,month-1,day);
date1.getWeek();
return weekcount;
}
//函数 获取输入的参数的日期的星期数
function weekcount(year,month,day)//参数 年 月 日
{
var date1 = new Date(year,month-1,day);
date1.getWeek();
return weekcount;
}
#7
@.@
晕。。修改了下。。
to ls
貌似忘记判断星期日的情况了。。
<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c),
day = date.getDay(), today = date.getDate(),
d = today - Math.abs((today - day) % 7 - (today > day ? 0 : 1));
return Math.ceil(d / 7) + 1;
}
alert(reDate(2007, 03, 23));
alert(reDate(2007, 02, 4));
</script>
晕。。修改了下。。
to ls
貌似忘记判断星期日的情况了。。
<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c),
day = date.getDay(), today = date.getDate(),
d = today - Math.abs((today - day) % 7 - (today > day ? 0 : 1));
return Math.ceil(d / 7) + 1;
}
alert(reDate(2007, 03, 23));
alert(reDate(2007, 02, 4));
</script>
#8
..............大哥写得那么复杂 很难算吗?
今天的日数 加上本月第一周缺少的天数 除以7 用Math.ceil整数即可
今天的日数 加上本月第一周缺少的天数 除以7 用Math.ceil整数即可
#9
恩,不错!
学习
学习
#10
。。。
方法不同嘛。
开始没考虑两个日期对象的说。。。
我在改下..
方法不同嘛。
开始没考虑两个日期对象的说。。。
我在改下..
#11
<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
return Math.ceil((c + 7 - (date.getDay() || 7)) / 7);
}
alert(reDate(2007, 3, 4));
</script>
这个没问题吧?(date.getDay() || 7)是为了判断星期日的情况。。
否则星期日会被算到下一个星期里去。。。
计算方法。。
[天数 + 星期总数(7) - 当前星期数] 除以7 求Math.ceil值
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
return Math.ceil((c + 7 - (date.getDay() || 7)) / 7);
}
alert(reDate(2007, 3, 4));
</script>
这个没问题吧?(date.getDay() || 7)是为了判断星期日的情况。。
否则星期日会被算到下一个星期里去。。。
计算方法。。
[天数 + 星期总数(7) - 当前星期数] 除以7 求Math.ceil值
#12
星期日本来就是一个星期的开始
#13
中国人当星期日是周末。
#14
@.@
噢。。也对。。。我们这里星期日上班。。。就星期六放一风。。。
噢。。也对。。。我们这里星期日上班。。。就星期六放一风。。。
#15
伤心。。。过了这周连星期六都没啦。。
T_T
T_T
#16
周日上班的时候你就当自己是老外,周六周日都上班的时候你就当自己是外星人好了。哈哈
#17
实在不行就判断一下啦 那也就是多加个1的问题 没多复杂
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+ 1 +(new Date(this.getFullYear(),this.getMonth(),1)).getDay())/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+ 1 +(new Date(this.getFullYear(),this.getMonth(),1)).getDay())/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
#18
厄.........不好意思是减1
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay() - 1)/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay() - 1)/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
#19
算法还是一样 减掉一天而已
#20
忽忽。昂,米办法。。
一周上6天班。。然后剩下的那天貌似需要补课的说。。
一周上6天班。。然后剩下的那天貌似需要补课的说。。
#21
555555 最多只能连续回复3次 我知道错了 可惜改不了
bug 如果是这个个月第一天刚好是星期天时会得到0
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay() - 1)/7 || 1);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
仔细想了想 用2个日期元素 效率比较低 还是你的好 我认输了
bug 如果是这个个月第一天刚好是星期天时会得到0
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay() - 1)/7 || 1);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
仔细想了想 用2个日期元素 效率比较低 还是你的好 我认输了
#22
忽忽。。
return Math.ceil((c + 7 - (date.getDay() || 7)) / 7);
感觉这个比较好的说。。
是我太执着了。。
主要原因是第一次回复比较白痴。。所以我感到郁闷。。又顶了几贴。。
以后不干这事了。。^o^
哈哈。。生了星星就可以连续回复了。。没有三次的限制的说。。。加油噢。。
具体能回复多少次我就不太清楚了。。 (不敢测试的说。。。被删除回复貌似减信誉的样子。。)
return Math.ceil((c + 7 - (date.getDay() || 7)) / 7);
感觉这个比较好的说。。
是我太执着了。。
主要原因是第一次回复比较白痴。。所以我感到郁闷。。又顶了几贴。。
以后不干这事了。。^o^
哈哈。。生了星星就可以连续回复了。。没有三次的限制的说。。。加油噢。。
具体能回复多少次我就不太清楚了。。 (不敢测试的说。。。被删除回复貌似减信誉的样子。。)
#23
http://www.blogjava.net/mxx/archive/2006/09/27/72159.html
常用公历日期处理程序
//根据日期返回该日期所在年的周数
Date.prototype.getWeekNum = function (){
var dat = new Date(this.getFullYear(),0,1);
var week = dat.getDay();
week = (week==0?7:week);
var days = this.calDateDistance(dat,"dd")+1;
return ((days + 6 - this.getDay() - 7 + week)/7);
}
得到一号是第几周,再算出那天是第几周,就知道是当月第几周了
常用公历日期处理程序
//根据日期返回该日期所在年的周数
Date.prototype.getWeekNum = function (){
var dat = new Date(this.getFullYear(),0,1);
var week = dat.getDay();
week = (week==0?7:week);
var days = this.calDateDistance(dat,"dd")+1;
return ((days + 6 - this.getDay() - 7 + week)/7);
}
得到一号是第几周,再算出那天是第几周,就知道是当月第几周了
#24
你的算法有问题,我4.30号的时候都算出了6
#25
/// <summary>
/// 获取日期在当前月的第几周
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string getWeekIndex(DateTime dt)
{
DateTime weekbegain = new DateTime();
DateTime weekend = new DateTime();
int weekCount = 0;
int MweekIndex = 0;
//循环取出 月 的每周 开始和结束时间,判断dt所在位置
for (int i = 1; i < 10; i++)
{
//调用方法,获取每周的开始结束时间
GetMonthWeek(dt, out weekCount, i, out weekbegain, out weekend);
//如果 dt在某周的时间段内,则起所在周的值为i,退出循环
if (dt.Date.Ticks >= weekbegain.Date.Ticks && dt.Date.Ticks <= weekend.Date.Ticks)
{
MweekIndex = i;
break;
}
}
//如果周索引在大于0且小于等于4之间,(通常每月只有周)
if (MweekIndex <= 4 && MweekIndex > 0)
{
return dt.Year + "年" + dt.Month + "月,第" + MweekIndex + "周("+dt.ToShortDateString()+")";
}
else
{
//如果周索引等于5,切周结束时间小于等于月末,则将其算问第5周
if (MweekIndex >= 5 && dt.Date.Ticks <= Convert.ToDateTime(dt.Date.Year + "-" + dt.Date.Month + "-1").Date.AddMonths(1).AddDays(-1).Date.Ticks)
{
return dt.Year + "年" + dt.Month + "月,第" + MweekIndex + "周(" + dt.ToShortDateString() + ")";
}
//如果要将日期算如下一个月,且当前月份为12月,则须添加年份
if ((dt.Month + 1) > 12)
{
return (dt.Year + 1) + "年" + 1 + "月,第" + 1 + "周(" + dt.ToShortDateString() + ")";
}
else
{
return dt.Year + "年" + (dt.Month + 1) + "月,第" + 1 + "周(" + dt.ToShortDateString() + ")";
}
}
}
/// <summary>
/// 获取某年某月的周数(即某年的某月有几周)和某一周的开始时间与结束时间。周从周一开始计算
/// 说明:月的开头1号若不足一周,从上一个月补上,月的末尾若不足一周,则充当下个月的第一周部分
/// write by dreamzgj 2010-2-26
/// </summary>
/// <param name="dTime">时间</param>
/// <param name="WeekCount" >返回该月的周数</param>
/// <param name="WeekIndex">周索引(即该月的第几周)</param>
/// <param name="WeekBeginDate">返回该周的开始时间</param>
/// <param name="WeekEndDate">返回该周的结束时间</param>
public static void GetMonthWeek(DateTime dTime, out int WeekCount, int MWeekIndex, out DateTime WeekBeginDate, out DateTime WeekEndDate)
{
//该月的第一天日期
DateTime MFirstDay = Convert.ToDateTime(dTime.Date.Year + "-" + dTime.Date.Month + "-1");
//该月第一天的周几(如:周一,周二...)
int WeekIndex = (int)MFirstDay.DayOfWeek;
if (WeekIndex == 0)
{
WeekIndex = 7;
}
//该月第一周的开始时间(可能为上个月的某一天)
DateTime FirstWeekBeginDate = MFirstDay.Date.AddDays(Convert.ToDouble(-WeekIndex + 1));
//该月第一周的结束时间
DateTime FirstWeekEndDate = FirstWeekBeginDate.AddDays(7).AddSeconds(-1);
//该月的最后一天时期
DateTime MLastDay = Convert.ToDateTime(dTime.Date.Year + "-" + dTime.Date.Month + "-1").Date.AddMonths(1).AddDays(-1);
//排去第一周剩下的天数
int DayCount = MLastDay.Date.Day - FirstWeekEndDate.Date.Day;
//该月的周数
WeekCount = DayCount / 7 + 1;
if (MWeekIndex > WeekCount)
MWeekIndex = WeekCount;
if (WeekIndex < 1)
MWeekIndex = 1;
//计算该周的开始时间和结束时间
WeekBeginDate = FirstWeekBeginDate.AddDays((MWeekIndex - 1) * 7);
WeekEndDate = FirstWeekEndDate.AddDays((MWeekIndex - 1) * 7);
}
#1
<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
var day = date.getDay();
var today = date.getDate();
if (day == 0) day = 7;
return (today + day) / 7;
}
alert(reDate(2007, 03, 23));
</script>
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
var day = date.getDay();
var today = date.getDate();
if (day == 0) day = 7;
return (today + day) / 7;
}
alert(reDate(2007, 03, 23));
</script>
#2
@.@
晕。。等我改下。。
晕。。等我改下。。
#3
var date1 = new Date();
var date2 = new Date(date1.getFullYear(),date1.getMonth(),1);
var weekcount = Math.ceil((date1.getDate() + date2.getDay()) / 7);
alert("今天是本月第" + weekcount + "周");
var date2 = new Date(date1.getFullYear(),date1.getMonth(),1);
var weekcount = Math.ceil((date1.getDate() + date2.getDay()) / 7);
alert("今天是本月第" + weekcount + "周");
#4
<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
var day = date.getDay(), today = date.getDate(), d;
if (day == 0) day = 7;
d = today - Math.abs((today - day) % 7 - (today > day ? 0 : 1));
return Math.ceil(d / 7) + 1;
}
alert(reDate(2007, 03, 23));
alert(reDate(2007, 02, 15));
</script>
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
var day = date.getDay(), today = date.getDate(), d;
if (day == 0) day = 7;
d = today - Math.abs((today - day) % 7 - (today > day ? 0 : 1));
return Math.ceil(d / 7) + 1;
}
alert(reDate(2007, 03, 23));
alert(reDate(2007, 02, 15));
</script>
#5
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay())/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay())/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
#6
需要的话加个简单的方法就可以了
//函数 获取输入的参数的日期的星期数
function weekcount(year,month,day)//参数 年 月 日
{
var date1 = new Date(year,month-1,day);
date1.getWeek();
return weekcount;
}
//函数 获取输入的参数的日期的星期数
function weekcount(year,month,day)//参数 年 月 日
{
var date1 = new Date(year,month-1,day);
date1.getWeek();
return weekcount;
}
#7
@.@
晕。。修改了下。。
to ls
貌似忘记判断星期日的情况了。。
<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c),
day = date.getDay(), today = date.getDate(),
d = today - Math.abs((today - day) % 7 - (today > day ? 0 : 1));
return Math.ceil(d / 7) + 1;
}
alert(reDate(2007, 03, 23));
alert(reDate(2007, 02, 4));
</script>
晕。。修改了下。。
to ls
貌似忘记判断星期日的情况了。。
<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c),
day = date.getDay(), today = date.getDate(),
d = today - Math.abs((today - day) % 7 - (today > day ? 0 : 1));
return Math.ceil(d / 7) + 1;
}
alert(reDate(2007, 03, 23));
alert(reDate(2007, 02, 4));
</script>
#8
..............大哥写得那么复杂 很难算吗?
今天的日数 加上本月第一周缺少的天数 除以7 用Math.ceil整数即可
今天的日数 加上本月第一周缺少的天数 除以7 用Math.ceil整数即可
#9
恩,不错!
学习
学习
#10
。。。
方法不同嘛。
开始没考虑两个日期对象的说。。。
我在改下..
方法不同嘛。
开始没考虑两个日期对象的说。。。
我在改下..
#11
<script type="text/javascript">
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
return Math.ceil((c + 7 - (date.getDay() || 7)) / 7);
}
alert(reDate(2007, 3, 4));
</script>
这个没问题吧?(date.getDay() || 7)是为了判断星期日的情况。。
否则星期日会被算到下一个星期里去。。。
计算方法。。
[天数 + 星期总数(7) - 当前星期数] 除以7 求Math.ceil值
function reDate(a, b, c) {
var date = new Date(a, b - 1, c);
return Math.ceil((c + 7 - (date.getDay() || 7)) / 7);
}
alert(reDate(2007, 3, 4));
</script>
这个没问题吧?(date.getDay() || 7)是为了判断星期日的情况。。
否则星期日会被算到下一个星期里去。。。
计算方法。。
[天数 + 星期总数(7) - 当前星期数] 除以7 求Math.ceil值
#12
星期日本来就是一个星期的开始
#13
中国人当星期日是周末。
#14
@.@
噢。。也对。。。我们这里星期日上班。。。就星期六放一风。。。
噢。。也对。。。我们这里星期日上班。。。就星期六放一风。。。
#15
伤心。。。过了这周连星期六都没啦。。
T_T
T_T
#16
周日上班的时候你就当自己是老外,周六周日都上班的时候你就当自己是外星人好了。哈哈
#17
实在不行就判断一下啦 那也就是多加个1的问题 没多复杂
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+ 1 +(new Date(this.getFullYear(),this.getMonth(),1)).getDay())/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+ 1 +(new Date(this.getFullYear(),this.getMonth(),1)).getDay())/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
#18
厄.........不好意思是减1
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay() - 1)/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay() - 1)/7);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
#19
算法还是一样 减掉一天而已
#20
忽忽。昂,米办法。。
一周上6天班。。然后剩下的那天貌似需要补课的说。。
一周上6天班。。然后剩下的那天貌似需要补课的说。。
#21
555555 最多只能连续回复3次 我知道错了 可惜改不了
bug 如果是这个个月第一天刚好是星期天时会得到0
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay() - 1)/7 || 1);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
仔细想了想 用2个日期元素 效率比较低 还是你的好 我认输了
bug 如果是这个个月第一天刚好是星期天时会得到0
//日期类扩展 getWeek() 获取当前日期的星期数
Date.prototype.getWeek = function(){
return Math.ceil((this.getDate()+(new Date(this.getFullYear(),this.getMonth(),1)).getDay() - 1)/7 || 1);
}
var date = new Date(); //创建日期实例
alert(date.getWeek());//获取星期数
仔细想了想 用2个日期元素 效率比较低 还是你的好 我认输了
#22
忽忽。。
return Math.ceil((c + 7 - (date.getDay() || 7)) / 7);
感觉这个比较好的说。。
是我太执着了。。
主要原因是第一次回复比较白痴。。所以我感到郁闷。。又顶了几贴。。
以后不干这事了。。^o^
哈哈。。生了星星就可以连续回复了。。没有三次的限制的说。。。加油噢。。
具体能回复多少次我就不太清楚了。。 (不敢测试的说。。。被删除回复貌似减信誉的样子。。)
return Math.ceil((c + 7 - (date.getDay() || 7)) / 7);
感觉这个比较好的说。。
是我太执着了。。
主要原因是第一次回复比较白痴。。所以我感到郁闷。。又顶了几贴。。
以后不干这事了。。^o^
哈哈。。生了星星就可以连续回复了。。没有三次的限制的说。。。加油噢。。
具体能回复多少次我就不太清楚了。。 (不敢测试的说。。。被删除回复貌似减信誉的样子。。)
#23
http://www.blogjava.net/mxx/archive/2006/09/27/72159.html
常用公历日期处理程序
//根据日期返回该日期所在年的周数
Date.prototype.getWeekNum = function (){
var dat = new Date(this.getFullYear(),0,1);
var week = dat.getDay();
week = (week==0?7:week);
var days = this.calDateDistance(dat,"dd")+1;
return ((days + 6 - this.getDay() - 7 + week)/7);
}
得到一号是第几周,再算出那天是第几周,就知道是当月第几周了
常用公历日期处理程序
//根据日期返回该日期所在年的周数
Date.prototype.getWeekNum = function (){
var dat = new Date(this.getFullYear(),0,1);
var week = dat.getDay();
week = (week==0?7:week);
var days = this.calDateDistance(dat,"dd")+1;
return ((days + 6 - this.getDay() - 7 + week)/7);
}
得到一号是第几周,再算出那天是第几周,就知道是当月第几周了
#24
你的算法有问题,我4.30号的时候都算出了6
#25
/// <summary>
/// 获取日期在当前月的第几周
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string getWeekIndex(DateTime dt)
{
DateTime weekbegain = new DateTime();
DateTime weekend = new DateTime();
int weekCount = 0;
int MweekIndex = 0;
//循环取出 月 的每周 开始和结束时间,判断dt所在位置
for (int i = 1; i < 10; i++)
{
//调用方法,获取每周的开始结束时间
GetMonthWeek(dt, out weekCount, i, out weekbegain, out weekend);
//如果 dt在某周的时间段内,则起所在周的值为i,退出循环
if (dt.Date.Ticks >= weekbegain.Date.Ticks && dt.Date.Ticks <= weekend.Date.Ticks)
{
MweekIndex = i;
break;
}
}
//如果周索引在大于0且小于等于4之间,(通常每月只有周)
if (MweekIndex <= 4 && MweekIndex > 0)
{
return dt.Year + "年" + dt.Month + "月,第" + MweekIndex + "周("+dt.ToShortDateString()+")";
}
else
{
//如果周索引等于5,切周结束时间小于等于月末,则将其算问第5周
if (MweekIndex >= 5 && dt.Date.Ticks <= Convert.ToDateTime(dt.Date.Year + "-" + dt.Date.Month + "-1").Date.AddMonths(1).AddDays(-1).Date.Ticks)
{
return dt.Year + "年" + dt.Month + "月,第" + MweekIndex + "周(" + dt.ToShortDateString() + ")";
}
//如果要将日期算如下一个月,且当前月份为12月,则须添加年份
if ((dt.Month + 1) > 12)
{
return (dt.Year + 1) + "年" + 1 + "月,第" + 1 + "周(" + dt.ToShortDateString() + ")";
}
else
{
return dt.Year + "年" + (dt.Month + 1) + "月,第" + 1 + "周(" + dt.ToShortDateString() + ")";
}
}
}
/// <summary>
/// 获取某年某月的周数(即某年的某月有几周)和某一周的开始时间与结束时间。周从周一开始计算
/// 说明:月的开头1号若不足一周,从上一个月补上,月的末尾若不足一周,则充当下个月的第一周部分
/// write by dreamzgj 2010-2-26
/// </summary>
/// <param name="dTime">时间</param>
/// <param name="WeekCount" >返回该月的周数</param>
/// <param name="WeekIndex">周索引(即该月的第几周)</param>
/// <param name="WeekBeginDate">返回该周的开始时间</param>
/// <param name="WeekEndDate">返回该周的结束时间</param>
public static void GetMonthWeek(DateTime dTime, out int WeekCount, int MWeekIndex, out DateTime WeekBeginDate, out DateTime WeekEndDate)
{
//该月的第一天日期
DateTime MFirstDay = Convert.ToDateTime(dTime.Date.Year + "-" + dTime.Date.Month + "-1");
//该月第一天的周几(如:周一,周二...)
int WeekIndex = (int)MFirstDay.DayOfWeek;
if (WeekIndex == 0)
{
WeekIndex = 7;
}
//该月第一周的开始时间(可能为上个月的某一天)
DateTime FirstWeekBeginDate = MFirstDay.Date.AddDays(Convert.ToDouble(-WeekIndex + 1));
//该月第一周的结束时间
DateTime FirstWeekEndDate = FirstWeekBeginDate.AddDays(7).AddSeconds(-1);
//该月的最后一天时期
DateTime MLastDay = Convert.ToDateTime(dTime.Date.Year + "-" + dTime.Date.Month + "-1").Date.AddMonths(1).AddDays(-1);
//排去第一周剩下的天数
int DayCount = MLastDay.Date.Day - FirstWeekEndDate.Date.Day;
//该月的周数
WeekCount = DayCount / 7 + 1;
if (MWeekIndex > WeekCount)
MWeekIndex = WeekCount;
if (WeekIndex < 1)
MWeekIndex = 1;
//计算该周的开始时间和结束时间
WeekBeginDate = FirstWeekBeginDate.AddDays((MWeekIndex - 1) * 7);
WeekEndDate = FirstWeekEndDate.AddDays((MWeekIndex - 1) * 7);
}