会员
商店
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
天纯蓝
人的每一步行动都在书写自己的历史。
博客园
首页
新随笔
联系
订阅
管理
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
天纯蓝
阅读(
3142
) 评论(
0
)
编辑
收藏
举报
努力加载评论中...
刷新页面
返回顶部
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
公告
点击右上角即可分享
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步