服务器之家

服务器之家 > 正文

asp.net 获取某个时间段的星期并以表格形式排列出来

时间:2019-08-29 09:45     来源/作者:服务器之家

代码如下:

复制代码代码如下:


string start = Request.Form.Get("date2").ToString(); //获取开始日期,此控件为html控件 
string end = Request.Form.Get("date3").ToString(); //获取结束日期,此控件为html控件 
string[] start_date = start.Split('-'); //分离出开始日期的年、月、日 
string[] end_date = end.Split('-'); //分离出结束日期的年、月、日 
DateTime dt1 = new DateTime(int.Parse(start_date[0]), int.Parse(start_date[1]), int.Parse(start_date[2])); 
DateTime dt2 = new DateTime(int.Parse(end_date[0]), int.Parse(end_date[1]), int.Parse(end_date[2])); 
TimeSpan ts = dt2 - dt1; 
//定义全局变量public string table_td = "";然后进行赋值 
table_td = "<table><tr><td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td><td>星期天</td></tr>"; 
//判断开始时间为星期几,如,如果是星期三,则需要前面空出2个单元格出来,以此类推 
switch (dt1.DayOfWeek.ToString()) 

case "Tuesday": 
table_td += "<tr><td></td>"; 
break; 
case "Wednesday": 
table_td += "<tr><td></td><td></td>"; 
break; 
case "Thursday": 
table_td += "<tr><td></td><td></td><td></td>"; 
break; 
case "Friday": 
table_td += "<tr><td></td><td></td><td></td><td></td>"; 
break; 
case "Saturday": 
table_td += "<tr><td></td><td></td><td></td><td></td><td></td>"; 
break; 
case "Sunday": 
table_td += "<tr><td></td><td></td><td></td><td></td><td></td><td></td>"; 
break; 

//递归至结束时间 
for (int i = 0; i < ts.Days; i++) 

string sdate = dt1.AddDays(i).Day.ToString(); 
switch (dt1.AddDays(i).DayOfWeek.ToString()) 

case "Monday": 
table_td += "<tr><td><a onmouseover=selStation(1); onmouseout=chide();>" + sdate + "</a></td>"; 
break; 
case "Tuesday": 
table_td += "<td><a onmouseover=selStation(1); onmouseout=chide();>" + sdate + "</a></td>"; 
break; 
case "Wednesday": 
table_td += "<td><a onmouseover=selStation(1); onmouseout=chide();>" + sdate + "</a></td>"; 
break; 
case "Thursday": 
table_td += "<td><a onmouseover=selStation(1); onmouseout=chide();>" + sdate + "</a></td>"; 
break; 
case "Friday": 
table_td += "<td><a onmouseover=selStation(1); onmouseout=chide();>" + sdate + "</a></td>"; 
break; 
case "Saturday": 
table_td += "<td><a onmouseover=selStation(1); onmouseout=chide();>" + sdate + "</a></td>"; 
break; 
case "Sunday": 
table_td += "<td><a onmouseover=selStation(1); onmouseout=chide();>" + sdate + "</a></td></tr>"; 
break; 


//结束 
table_td += "</tr></table>"; 


打印table_td即可。 
以上是我自己写的,但觉得不怎么样,下面我提供下别人在我做完后,做给我的,代码如下: 

复制代码代码如下:


int weekIndex(string item) 

string[] week = new string[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; 
int index = -1; 
for (int i = 0; i < week.Length; i++) 

if (week[i].Trim().ToUpper() == item.ToUpper().Trim()) 

index = i; 
break; 


return index; 

 

复制代码代码如下:


StringBuilder sb = new StringBuilder(); 
sb.Remove(0, sb.Length); 
sb.Append("<table><tr><td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td><td>星期天</td></tr>"); 
DateTime dt1 = new DateTime(2010, 3, 16); 
DateTime dt2 = new DateTime(2010, 4, 13); 
TimeSpan ts = dt2 - dt1; 
int index; DateTime dtTemp; 
for (int i = 0; i < ts.Days; i++) { 
dtTemp=dt1.AddDays(i); 
index = weekIndex(dtTemp.DayOfWeek.ToString()); 
if (index == 0 && i > 0) 

sb.AppendFormat("<tr><td>{0}</td>", dtTemp.ToString("MM-dd")); 

else if (index > 0 && i == 0) 

sb.Append("<tr>"); 
for (int j = 0; j <= index - 1; j++) 

sb.Append("<td> </td>"); 

sb.AppendFormat("<td>{0}</td>", dtTemp.ToString("MM-dd")); 

else if (index == 6 && i>0) 

sb.AppendFormat("<td>{0}</td></tr>", dtTemp.ToString("MM-dd")); 

else { 
sb.AppendFormat("<td>{0}</td>", dtTemp.ToString("MM-dd")); 


sb.Append("</table>"); 
Response.Write(sb.ToString()); 


看完后,大致上的想法是一样的,只是.......初学者没办法。继续努力。

标签:

相关文章

热门资讯

华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
叠猫猫队长可以退出吗 叠猫猫队长怎么换队伍
叠猫猫队长可以退出吗 叠猫猫队长怎么换队伍 2019-06-05
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
返回顶部