求输入一个日期如2009-04-23得到该日期是本年第几周?
要求:要用后台代码实现,不是用JS来实现,JS的有了,要后台代码来实现,谁有代码贴一下,谢谢了我在后台代码FOR循环中调用前台JS,我在后台是用这个调用前台JS的.为什么只有当FOR循环全部完了才会执行JS,不能循环一次就执行一次了??如果可以就不需要用后台代码为求周了???//
ClientScript.RegisterStartupScript(this.GetType(), "go", "<script>GetMonthWeek(" + day + ") </script>")
要求:要用后台代码实现,不是用JS来实现,JS的有了,要后台代码来实现,谁有代码贴一下,谢谢了我在后台代码FOR循环中调用前台JS,我在后台是用这个调用前台JS的.为什么只有当FOR循环全部完了才会执行JS,不能循环一次就执行一次了??如果可以就不需要用后台代码为求周了???//
ClientScript.RegisterStartupScript(this.GetType(), "go", "<script>GetMonthWeek(" + day + ") </script>")
//本周是本年第几周
private int DatePart(System.DateTime dt)
{
int weeknow = Convert.ToInt32(dt.DayOfWeek);//今天星期几
int daydiff = (-1) * (weeknow+1);//今日与上周末的天数差
int days = System.DateTime.Now.AddDays(daydiff).DayOfYear;//上周末是本年第几天
int weeks = days/7;
if(days%7 != 0)
{
weeks++;
}
//此时,weeks为上周是本年的第几周
return (weeks+1);
}
//本周起止日期 private string WeekRange(System.DateTime dt)
{
int weeknow = Convert.ToInt32(dt.DayOfWeek);
int daydiff = (-1) * weeknow;
int dayadd = 6-weeknow;
string dateBegin = System.DateTime.Now.AddDays(daydiff).Date.ToString("MM月dd日");
string dateEnd = System.DateTime.Now.AddDays(dayadd).Date.ToString("MM月dd日");
return dateBegin + " - " +dateEnd;
}//计算第几周(重新修改后)
public int GetWeekOfCurrDate(DateTime dt)
{
int Week = 1;
int nYear = dt.Year;
System.DateTime FirstDayInYear = new DateTime(nYear, 1, 1);
System.DateTime LastDayInYear = new DateTime(nYear, 12, 31);
int DaysOfYear = Convert.ToInt32(LastDayInYear.DayOfYear);
int WeekNow = Convert.ToInt32(FirstDayInYear.DayOfWeek) - 1;
if (WeekNow < 0) WeekNow = 6;
int DayAdd = 6 - WeekNow;
System.DateTime BeginDayOfWeek = new DateTime(nYear, 1, 1);
System.DateTime EndDayOfWeek = BeginDayOfWeek.AddDays(DayAdd);
Week = 2;
for (int i = DayAdd + 1; i <= DaysOfYear; i++)
{
BeginDayOfWeek = FirstDayInYear.AddDays(i);
if (i + 6 > DaysOfYear)
{
EndDayOfWeek = BeginDayOfWeek.AddDays(DaysOfYear - i - 1);
}
else
{
EndDayOfWeek = BeginDayOfWeek.AddDays(6);
} if (dt.Month == EndDayOfWeek.Month && dt.Day <= EndDayOfWeek.Day)
{
break;
}
Week++;
i = i + 6;
}
return Week;
}
datepart(week,getdate())只是取得是本年的第几周,如果是本月的第几周,用:
select datepart(week,getdate())-datepart(week,getdate()-day(getdate()))+1
datepart(week,getdate())只是取得是本年的第几周,如果是本月的第几周,用:
select datepart(week,getdate())-datepart(week,getdate()-day(getdate()))+1
UP
6.DateADD()
作用:可以计算出为某一日期时间值加上特定的时间区间后,所得的日期
时间是什么
语法:DateADD(detepart,number,date)
返回值:日期参数 datepart的取值:
1.year(yy) 年份
2.quarter(qq) 第几季度
3.month(mm) 月份
4.dayofyear(dy) 此日期是本年中的第几天
5.day(dd) 日数
6.week(wk) 此日期是本年的第几周
7.weekday(dw) 此日期是本周的第几天(1.星期天..7:星期六)
8.hour(hh) 小时
9.minute(mi) 分钟
10.second(ss) 秒
11millisecond(ms) 毫秒eg:
print dateadd(yy,10,'2007-1-2')
print dateadd(dd,10,'2007-1-2')print dateadd(dd,100,getdate())7.DateDiff()
作用:能够计算出两个日期时间表达式这之间的差距
语法:datediff(datepart,startdate,enddate)
返回值:整形eg:
select datediff(mm,'1991-12-1','2001-1-1')select datediff(yy,'1996-1-1',getdate())三、数学函数
3.1 ABS():返回表达式的绝对值
eg:ABS(-1)
3.2: EXP():返回e的N次方值
eg:EXP(2)
3.3 PI()
3.4:POWER()
3.5:RAND():返回一个0-1之间的随机数值
3.6:SQRT():开根号四.数据类型转换函数declare @age int
set @age=18
print '小明的年龄为:'[email protected]:CAST()
语法:CAST(expression as data_type)eg:
declare @age int
set @age=18
print '小明的年龄为:'+cast(@age as varchar(10))declare @num1 varchar(2)
declare @num2 varchar(2)
declare @num3 varchar(4)
set @num1='12'
set @num2='10'
set @num3=cast(cast(@num1 as int)+cast(@num2 as int) as varchar(4))
print @num34.2:Convert
语法:Convert(data_type,expression)eg:
declare @num1 int
declare @num2 int
declare @num3 varchar(4)
set @num1=10
set @num2=15
set @num3=convert(varchar(2),@num1)+convert(varchar(2),@num2)
print @num3--SQLSERVER中的全局函数
1.@@CONNECTION :返回SQLSERVER启动后,连接或者尝试连结的次数
2.@@CUP_BUSY:返回SQLSERVER最近一次启动之后,CPU的工作时间(单位:
毫秒)
3.@@ERROR:返回最近一次执行错误的T-SQL语句的错误代码
4.@@IDENTITY:返回最近一次增加的自增长编号
5.@@ROWCOUNT: 返回最近一次执行的语句影响了多少条数据记录二、Tran-SQL的语句
1.控制流语言
declare @num1 int
set @num1=5
if (@num1>1)
print '@num1大于1'
else
print '@num1小于1'
2.begin..end
declare @num1 int
set @num1=5
if (@num1>1 and @num<10)
begin
print 'aaa'
end else
begin
print 'ccc'
print 'ddd'
end2.While循环语句
语法:
while bool_expression
{sql_statement}
[break]
{sql_statement}
[continue]while a>b
beginendeg:
declare @num int
declare @sum int
set @num=0
set @sum=0
while @num<=100
begin
set @sum=@sum+@num
set @num=@num+1
if (@num=100)
break
else
continue
end
print @sum