会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
天纯蓝
人的每一步行动都在书写自己的历史。
博客园
首页
新随笔
联系
订阅
管理
C#关于日期月天数和一年有多少周及某年某周时间段的计算
C#关于日期月天数和一年有多少周及某年某周时间段的计算
/**/
///
<summary>
///
当前月有多少天
///
</summary>
///
<param name="y"></param>
///
<param name="m"></param>
///
<returns></returns>
public
static
int
HowMonthDay(
int
y,
int
m)
{
int
mnext;
int
ynext;
if
(m
<
12
)
{
mnext
=
m
+
1
;
ynext
=
y;
}
else
{
mnext
=
1
;
ynext
=
y
+
1
;
}
DateTime dt1
=
System.Convert.ToDateTime(y
+
"
-
"
+
m
+
"
-1
"
);
DateTime dt2
=
System.Convert.ToDateTime(ynext
+
"
-
"
+
mnext
+
"
-1
"
);
TimeSpan diff
=
dt2
-
dt1;
return
diff.Days;
}
/**/
///
<summary>
///
得到一年中的某周的起始日和截止日
///
年 nYear
///
周数 nNumWeek
///
周始 out dtWeekStart
///
周终 out dtWeekeEnd
///
</summary>
///
<param name="nYear"></param>
///
<param name="nNumWeek"></param>
///
<param name="dtWeekStart"></param>
///
<param name="dtWeekeEnd"></param>
public
static
void
GetWeek(
int
nYear,
int
nNumWeek,
out
DateTime dtWeekStart,
out
DateTime dtWeekeEnd)
{
DateTime dt
=
new
DateTime(nYear,
1
,
1
);
dt
=
dt
+
new
TimeSpan((nNumWeek
-
1
)
*
7
,
0
,
0
,
0
);
dtWeekStart
=
dt.AddDays(
-
(
int
)dt.DayOfWeek
+
(
int
)DayOfWeek.Monday);
dtWeekeEnd
=
dt.AddDays((
int
)DayOfWeek.Saturday
-
(
int
)dt.DayOfWeek
+
1
);
}
/**/
///
<summary>
///
求某年有多少周
///
返回 int
///
</summary>
///
<param name="strYear"></param>
///
<returns>
int
</returns>
public
static
int
GetYearWeekCount(
int
strYear)
{
string
returnStr
=
""
;
System.DateTime fDt
=
DateTime.Parse(strYear.ToString()
+
"
-01-01
"
);
int
k
=
Convert.ToInt32(fDt.DayOfWeek);
//
得到该年的第一天是周几
if
(k
==
1
)
{
int
countDay
=
fDt.AddYears(
1
).AddDays(
-
1
).DayOfYear;
int
countWeek
=
countDay
/
7
+
1
;
return
countWeek;
}
else
{
int
countDay
=
fDt.AddYears(
1
).AddDays(
-
1
).DayOfYear;
int
countWeek
=
countDay
/
7
+
2
;
return
countWeek;
}
}
/**/
///
<summary>
///
求当前日期是一年的中第几周
///
</summary>
///
<param name="date"></param>
///
<returns></returns>
public
static
int
WeekOfYear(DateTime curDay)
{
int
firstdayofweek
=
Convert.ToInt32(Convert.ToDateTime(curDay.Year.ToString()
+
"
-
"
+
"
1-1
"
).DayOfWeek);
int
days
=
curDay.DayOfYear;
int
daysOutOneWeek
=
days
-
(
7
-
firstdayofweek);
if
(daysOutOneWeek
<=
0
)
{
return
1
;
}
else
{
int
weeks
=
daysOutOneWeek
/
7
;
if
(daysOutOneWeek
%
7
!=
0
)
weeks
++
;
return
weeks
+
1
;
}
}
posted @
2007-11-21 16:42
天纯蓝
阅读(
3131
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告