会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
Microsoft . 技术之路...
—— 专注于微软技术, 分享是快乐的源泉......
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
公告
C#时间函数扩展(计算第几周和周起止日期)
Posted on
2006-05-19 10:25
赣江源
阅读(
3228
) 评论(
3
)
编辑
收藏
举报
//
本周是本年第几周
private
int
DatePart(System.DateTime dt)
{
int
weeknow
=
Convert.ToInt32(dt.DayOfWeek);
//
今天星期几
int
daydiff
=
(
-
1
)
*
(weeknow
+
1
);
//
今日与上周末的天数差
int
days
=
System.DateTime.Now.AddDays(daydiff).DayOfYear;
//
上周末是本年第几天
int
weeks
=
days
/
7
;
if
(days
%
7
!=
0
)
{
weeks
++
;
}
//
此时,weeks为上周是本年的第几周
return
(weeks
+
1
);
}
//
本周起止日期
private
string
WeekRange(System.DateTime dt)
{
int
weeknow
=
Convert.ToInt32(dt.DayOfWeek);
int
daydiff
=
(
-
1
)
*
weeknow;
int
dayadd
=
6
-
weeknow;
string
dateBegin
=
System.DateTime.Now.AddDays(daydiff).Date.ToString(
"
MM月dd日
"
);
string
dateEnd
=
System.DateTime.Now.AddDays(dayadd).Date.ToString(
"
MM月dd日
"
);
return
dateBegin
+
"
-
"
+
dateEnd;
}
//
计算第几周(重新修改后)
public
int
GetWeekOfCurrDate(DateTime dt)
{
int
Week
=
1
;
int
nYear
=
dt.Year;
System.DateTime FirstDayInYear
=
new
DateTime(nYear,
1
,
1
);
System.DateTime LastDayInYear
=
new
DateTime(nYear,
12
,
31
);
int
DaysOfYear
=
Convert.ToInt32(LastDayInYear.DayOfYear);
int
WeekNow
=
Convert.ToInt32(FirstDayInYear.DayOfWeek)
-
1
;
if
(WeekNow
<
0
) WeekNow
=
6
;
int
DayAdd
=
6
-
WeekNow;
System.DateTime BeginDayOfWeek
=
new
DateTime(nYear,
1
,
1
);
System.DateTime EndDayOfWeek
=
BeginDayOfWeek.AddDays(DayAdd);
Week
=
2
;
for
(
int
i
=
DayAdd
+
1
; i
<=
DaysOfYear; i
++
)
{
BeginDayOfWeek
=
FirstDayInYear.AddDays(i);
if
(i
+
6
>
DaysOfYear)
{
EndDayOfWeek
=
BeginDayOfWeek.AddDays(DaysOfYear
-
i
-
1
);
}
else
{
EndDayOfWeek
=
BeginDayOfWeek.AddDays(
6
);
}
if
(dt.Month
==
EndDayOfWeek.Month
&&
dt.Day
<=
EndDayOfWeek.Day)
{
break
;
}
Week
++
;
i
=
i
+
6
;
}
return
Week;
}
会员力量,点亮园子希望
刷新页面
返回顶部
Powered by:
博客园
Copyright © 2024 赣江源
Powered by .NET 8.0 on Kubernetes