计算某年有多少个周?请教高手!!求代码!
int year年, month月;//年和月是下拉框绑定好了,今年第几周也是个DropDownList3,当我选择年,就把周数显示出来,再选月,就把他在那个月的第几周显示出来。知道一年有52和53周,但要显示在DropDownList里面
year = int.Parse(DropDownList1.SelectedValue);
month = int.Parse(DropDownList2.SelectedValue);
DateTime weekstart = new DateTime(year, month, 1);
--------------------编程问答-------------------- http://www.cnblogs.com/imsong/articles/1115167.html
http://www.cnblogs.com/halia/archive/2010/04/05/1704761.html
http://zhidao.baidu.com/question/135602256.html --------------------编程问答-------------------- “第”几周,实际上一年的第一周不是1月1日开始的。因此如果上楼有相应的索引的话,你可以看看如何简单地计算每年1月1日所在的那一个周的周一的日期,然后想知道某月的1日或者当年的最后一天是第几周都要跟这个周一的日期相减(而不是跟当年的1月1日相减)。 --------------------编程问答-------------------- select datepart(wk,'2011-12-31')
--------------------编程问答-------------------- sq1 server 2005 字自定义表值函数,返回一年的周的结果 周,周第一天日期,。。
create FUNCTION [dbo].[Func] ()
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>
/// 根据所在年月返回天数
/// </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;
}
} --------------------编程问答-------------------- 马上代码一大堆 --------------------编程问答-------------------- 都不是我要的答案:我要求某个月是年的第几周?当我下拉框选择5月份,就要显示5月份在当年的多少周 --------------------编程问答-------------------- 找到5月1日与1月1日之间相差多少天,模7取余,看1月1号是星期几,比如星期5,余数为3,那么就是(5+3)%7了。。。 --------------------编程问答--------------------
5月1号和5月31 是一周么?
--------------------编程问答--------------------
/// <summary>
/// 获取指定日期在该年中属于第几个星期
/// </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,也可以直接去掉 --------------------编程问答-------------------- 代码太多了,呵呵,专心看看
补充:.NET技术 , ASP.NET