我想做个日程安排系统,有日计划、周计划、月计划,年计划,都是根据选定的这天的日期,从数据库中取出这天所在的周、月、年的纪录。日、月、年都可以根据这天的日期去取(如日期为2006-04-19,取2006这一年的,04这个月的,19这日的)但是这周我就不太清楚应该怎样个取法了,各位大哥可以帮帮忙吗?
解决方案 »
- dev控件treelist控件实现
- vs2008打开vs2003后,提示:不是asp.net 1.1
- textBOX 属性问题!怎么才能让textbox 不出现|的输入啊
- 求救:网站被攻击,请高手指教
- 为什么别人能在内容页中读到母版页中的变量,我却不行?
- 怕你笑,但又不得不问的问题
- Microsoft的petshop例子在哪?
- 谁可以提供<<ADO.NET高级编程>>电子书 中文版 急需!
- 【急急急】asp.net使用Rewrite.dll插件伪静态化的问题,见描述,希望高手帮助(早点解决,过个好十一 -_-)
- 大侠快帮忙阿!如何设置框架的页面
- 问一个小问题(关于ASP.NET 2.0)
- !!!求助!!!一个calendar和datalist的问题
{
Week week = new Week(); if( dateTime.AddDays((7 - (int)(dateTime.DayOfWeek))%7).Year > dateTime.Year )
{
week.Year = dateTime.Year + 1;
week.WeekOfYear = 1;
}
else
{
DateTime firstDayOfYear = new DateTime(dateTime.Year,1,1);
int dayOfYear = dateTime.DayOfYear + (int)(firstDayOfYear.DayOfWeek) -1; if( firstDayOfYear.DayOfWeek == DayOfWeek.Sunday )
{ dayOfYear += 7;
} week.Year = dateTime.Year;
week.WeekOfYear = Convert.ToInt16(dayOfYear/7.0 + 0.499);
}
return week;
} struct Week
{
public int Year;
public int WeekOfYear;
}
然后用DateTime.Now.AddDays()来几计算周日和周日
比如今天是周二,周一就等于DateTime.Now.AddDays(-1);
周日等于DateTime.Now.AddDays(4);
/// 计算本周起始日期(礼拜一的日期)
/// </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;
}
}====
~~~~ 我的Blog:http://blog.csdn.net/quou2002