会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
行成于思,行胜于言
記住該記住的,忘記該忘記的,改變能改變的,接受不能改變的。
博客园
首页
新随笔
联系
订阅
管理
由当前日期计算相应的周一和周日
/**/
///
<summary>
///
计算本周起始日期(礼拜一的日期)
///
</summary>
///
<param name="someDate">
该周中任意一天
</param>
///
<returns>
返回礼拜一日期,后面的具体时、分、秒和传入值相等
</returns>
public
static
DateTime CalculateFirstDateOfWeek(DateTime someDate)
{
int
i
=
someDate.DayOfWeek
-
DayOfWeek.Monday;
if
(i
==
-
1
) i
=
6
;
//
i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。
TimeSpan ts
=
new
TimeSpan(i,
0
,
0
,
0
);
return
someDate.Subtract(ts);
}
/**/
///
<summary>
///
计算本周结束日期(礼拜日的日期)
///
</summary>
///
<param name="someDate">
该周中任意一天
</param>
///
<returns>
返回礼拜日日期,后面的具体时、分、秒和传入值相等
</returns>
public
static
DateTime CalculateLastDateOfWeek(DateTime someDate)
{
int
i
=
someDate.DayOfWeek
-
DayOfWeek.Sunday;
if
(i
!=
0
) i
=
7
-
i;
//
因为枚举原因,Sunday排在最前,相减间隔要被7减。
TimeSpan ts
=
new
TimeSpan(i,
0
,
0
,
0
);
return
someDate.Add(ts);
}
/**/
///
<summary>
///
判断选择的日期是否是本周(根据系统当前时间决定的‘本周’比较而言)
///
</summary>
///
<param name="someDate"></param>
///
<returns></returns>
public
static
bool
IsThisWeek(DateTime someDate)
{
//
得到someDate对应的周一
DateTime someMon
=
CalculateFirstDateOfWeek(someDate);
//
得到本周一
DateTime nowMon
=
CalculateFirstDateOfWeek(DateTime.Now);
TimeSpan ts
=
someMon
-
nowMon;
if
(ts.Days
<
0
)
ts
=
-
ts;
//
取正
if
(ts.Days
>=
7
)
{
return
false
;
}
else
{
return
true
;
}
}
如取得当前日期所在周的周一为:
CalculateFirstDateOfWeek(System.DateTime.Now)
其他的(计算月份,天数等):
string
strDate
=
Convert.ToDateTime(strStart).AddMonths(
+
1
).ToShortDateString();
strDate
=
Convert.ToDateTime(strEnd).AddDays(
-
1
).ToShortDateString();
如今天是2007/10/9,那么strDate的值就是
2007/10/31.
posted @
2007-10-09 16:51
江湖工夫
阅读(
1056
) 评论(
0
)
收藏
举报
刷新页面
返回顶部
公告