请问,根据时间可以画出如下月份的一个表格吗?
例如时间是:2007-10 表格如下: (用c#语言)
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
例如时间是:2007-10 表格如下: (用c#语言)
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
代码如下。贴上去就能运行。string Date = this.DdlYear.SelectedValue+"-"+this.DdlMonth.SelectedValue+"-01";
string NextDate;
if(this.DdlMonth.SelectedValue == "12")
{
int aa = 1;
NextDate = this.DdlYear.SelectedValue+1+"-"+aa+"-01";
}
else
{
NextDate = this.DdlYear.SelectedValue+"-"+(Convert.ToInt32(this.DdlMonth.SelectedValue)+1).ToString()+"-01";
}
StringBuilder sb = new StringBuilder();
sb.Append("<table width=665 border=0 cellSpacing=1 cellPadding=1><tr width = 665 align=center height=60 bgcolor=\"#99ccff\"><td width=100><FONT face=\"宋体\" size=3 style=\"FONT-WEIGHT: bold\" color=#003300>星期日</font></td><td width=100><FONT face=\"宋体\" size=3 style=\"FONT-WEIGHT: bold\" color=#003300>星期一</font></td><td width=100><FONT face=\"宋体\" size=3 style=\"FONT-WEIGHT: bold\" color=#003300>星期二</font></td><td width=100><FONT face=\"宋体\" size=3 style=\"FONT-WEIGHT: bold\" color=#003300>星期三</font></td><td width=100><FONT face=\"宋体\" size=3 style=\"FONT-WEIGHT: bold\" color=#003300>星期四</font></td><td width=100><FONT face=\"宋体\" size=3 style=\"FONT-WEIGHT: bold\" color=#003300>星期五</font></td><td width=100><FONT face=\"宋体\" size=3 style=\"FONT-WEIGHT: bold\" color=#003300>星期六</font></td></font></tr>");
sb.Append("<tr width=665 bgcolor=\"#ddeaf5\">");
int j = 0; //保存这是这个礼拜的第几天。
for (int i=0;i<Convert.ToInt32(Convert.ToDateTime(Date).DayOfWeek);i++)
{
j = j + 1;
sb.Append("<td width=100 height=60 bordercolorlight=\"#00ff00\" align=center><FONT face=\"宋体\" color=\"#ff0033\" style=\"FONT-WEIGHT: bold\" size=2></font></td>");
}
Convert.ToDateTime(Date);
TimeSpan ts = Convert.ToDateTime(NextDate)-Convert.ToDateTime(Date);
for(int i = 1;i<=ts.Days;i++)
{
j = j + 1;
TKnowledgeBase ObjKnow = new TKnowledgeBase();
ObjKnow.TypeName1 = "日程";
ObjKnow.TypeName2 = "协作日程";
ObjKnow.ExhiCode = Session["CurrentManagerExhiCode"].ToString(); //当前展会。
ObjKnow.ToDate = this.DdlYear.SelectedValue.ToString()+"-"+DdlMonth.SelectedValue.ToString()+"-"+ i.ToString();
DataSet ds = ObjKnow.GetList();
//string str = "";
if(ds.Tables[0].Rows.Count > 0)
{
sb.Append("<td width=100 height=60 bordercolorlight=\"#00ff00\" nowrap=false align=left>");
for(int f=0;f<ds.Tables[0].Rows.Count;f++)
{
if( j % 8 == 0)
{
sb.Append("</tr><tr width =665 bgcolor=\"#ddeaf5\">");
j = j + 1;
}
sb.Append("<a href = javascript:alert(\"" + ds.Tables[0].Rows[f]["Content"]+ "\")>" + (f+1).ToString()+"、"+ ds.Tables[0].Rows[f]["Title"] + "</a><br>");
}
sb.Append("</td>");
}
else
{
if( j % 8 == 0)
{
sb.Append("</tr><tr width=665 bgcolor=\"#ddeaf5\">");
j = j + 1;
}
sb.Append("<td width=100 height=60 bordercolorlight=\"#00ff00\" nowrap=false align=center><FONT face=\"宋体\" color=\"#ff0033\" style=\"FONT-WEIGHT: bold\" size=5>"+ i +"</font></td>");
}
}
sb.Append("</tr></table>");
lblCaclder.Text=sb.ToString();
复加了日历日志显示功能。你稍做整理也就可以了。
returns @t table(日 varchar(4),一 varchar(4),二 varchar(4),三 varchar(4),四 varchar(4),五 varchar(4),六 varchar(4))
as
begin declare @a table(id int identity(0,1),date datetime)
insert into @a(date)
select top 31 rtrim(@year)+'-'+rtrim(@month)+'-1' from sysobjects
update @a set date=dateadd(dd,id,date) insert into @t
select
max(case datepart(dw,date) when 7 then rtrim(day(date)) else '' end),
max(case datepart(dw,date) when 1 then rtrim(day(date)) else '' end),
max(case datepart(dw,date) when 2 then rtrim(day(date)) else '' end),
max(case datepart(dw,date) when 3 then rtrim(day(date)) else '' end),
max(case datepart(dw,date) when 4 then rtrim(day(date)) else '' end),
max(case datepart(dw,date) when 5 then rtrim(day(date)) else '' end),
max(case datepart(dw,date) when 6 then rtrim(day(date)) else '' end)
from
@a
where
month(date)=@month
group by
(case datepart(dw,date) when 7 then datepart(week,date)+1 else datepart(week,date) end) return
end
go执行函数set datefirst 1
select * from dbo.f_calendar(2008,1)-----------------------------------------------------------------------------------------------
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
protected void Page_Load(object sender, EventArgs e)
{ string myTime = "2008-01-01";
int days = DateTime.DaysInMonth(Convert.ToInt32(Convert.ToDateTime(myTime).ToString("yyyy")), Convert.ToInt32(Convert.ToDateTime(myTime).ToString("MM")));
StringBuilder strSql = new StringBuilder();
strSql.Append("<table width='100%' border='1'>");
strSql.Append("<tr><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>");
for (int m=1;m<days;m++)
{//循环月份,m代表天数
for (int n = 0; n < 7; n++)
{//循环星期
if (n == 0)
{
strSql.Append("<tr>");
}
if (n == Convert.ToInt32(Convert.ToDateTime(myTime.Substring(0,7) + "-" + m.ToString()).DayOfWeek))
{
strSql.Append(" <td>" + m.ToString() + " </td> ");
if (m >= days)
{
break;
}
if (n != 6)
{
m++;
}
}
else
{
strSql.Append(" <td> </td> ");
}
if (n == 6)
{
strSql.Append("</tr>");
}
}
}
strSql.Append("</table>");
MyLabel.Text = strSql.ToString();
}