int year年, month月;
//年和月是下拉框绑定好了,今年第几周也是个DropDownList3,当我选择年,就把周数显示出来,再选月,就把他在那个月的第几周显示出来。知道一年有52和53周,但要显示在DropDownList里面 year = int.Parse(DropDownList1.SelectedValue);
month = int.Parse(DropDownList2.SelectedValue);
DateTime weekstart = new DateTime(year, month, 1);
//年和月是下拉框绑定好了,今年第几周也是个DropDownList3,当我选择年,就把周数显示出来,再选月,就把他在那个月的第几周显示出来。知道一年有52和53周,但要显示在DropDownList里面 year = int.Parse(DropDownList1.SelectedValue);
month = int.Parse(DropDownList2.SelectedValue);
DateTime weekstart = new DateTime(year, month, 1);
RETURNS TABLE
AS
RETURN
-- select * from week,wkitem where wkitem.dt between dt1 and dt2 and wkitem.id=weekid
with z as (
select zid=1,datediff(wk,ksrq,jsrq)+1 as zs ,datename(weekday,ksrq) as wkname,DATEADD(wk,
DATEDIFF(wk,0,ksrq), -1) as dt1
from xq where currentxq=1
union all
select zid=zid+1,zs, datename(weekday,dt1+7), dt1+7 from z where zid<zs
)
select * from z
/// 根据所在年月返回天数
/// </summary>
/// <param name="year">年</param>
/// <param name="month">月</param>
/// <returns></returns>
protected int GetMonthDayCount(int year, int month)
{
return DateTime.DaysInMonth(year, month);
} /// <summary>
/// 根据日期返回星期几
/// </summary>
/// <param name="dTime">日期时间 格式:yyyy-MM-dd</param>
/// <returns></returns>
public int GetWeekDay(DateTime dTime)
{
//确定星期几
int index = (int)dTime.DayOfWeek;
return index;
} /// <summary>
/// 获得日期所在年第几周
/// </summary>
/// <param name="curDay">日期 格式:yyyy-MM-dd</param>
/// <returns></returns>
protected 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;
}
}
/// 获取指定日期在该年中属于第几个星期
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static int GetWeeksInYear(this DateTime date)
{
return GetWeeks(date.DayOfYear + (int)new DateTime(date.Year, 1, 1).DayOfWeek);
}
/// <summary>
/// 获取指定日期在该月中属于第几个星期
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static int GetWeeksInMonth(this DateTime date)
{
return GetWeeks(date.Day + (int)new DateTime(date.Year, date.Month, 1).DayOfWeek);
} private static int GetWeeks(int days)
{
int weeks = days / 7;
if (days % 7 != 0)
{
weeks++;
} return weeks;
}你要5月有第几周简单的很,你把5月1日传进去,得出一个开始周startWeeks,再把5月31日传进去,得到一个结束周endWeeks
然后
for(int = startWeeks;i<=endWeeks;i++)
{
//5月在这年中对应的周都在了,然后你该干嘛就干嘛
}
什么意思???什么叫再加上个日期???不明白啊
this是3.5的扩展方法,如果不知道怎么用可以Baidu,也可以直接去掉