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

代码如下:

复制代码 代码如下:

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());

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

时间: 2024-12-26 04:21:51

asp.net 获取某个时间段的星期并以表格形式排列出来_实用技巧的相关文章

Asp.net获取客户端IP常见代码存在的伪造IP问题探讨_实用技巧

在网卡随便一搜: Asp.net 客户端IP 可以搜索到很多页面,提供的代码基本都类似于: 复制代码 代码如下: if (Request.ServerVariables["HTTP_VIA"] != null) return Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(new char[] { ',' })[0]; else return Request.ServerVariables["RE

asp.net下获取远程网页的内容之二(downmoon原创)_实用技巧

本文仅针AD下代理上网的情况: 代码如下: 1.定义变量:  定义变量#region  定义变量 复制代码 代码如下: private    string strFireWallIP          ...{              get              ...{                  return System.Configuration.ConfigurationSettings.AppSettings["strFireWallIP"];        

Asp.net实现MVC处理文件的上传下载功能实例教程_实用技巧

上传于下载功能是程序设计中非常常见的一个功能,在ASP.NET程序开发中有着非常广泛的应用.本文就以实例形式来实现这一功能. 一.概述 如果你仅仅只有Asp.net Web Forms背景转而学习Asp.net MVC的,我想你的第一个经历或许是那些曾经让你的编程变得愉悦无比的服务端控件都驾鹤西去了.FileUpload就是其中一个,而这个控件的缺席给我们带来一些小问题.这篇文章主要说如何在Asp.net MVC中上传文件,然后如何再从服务器中把上传过的文件下载下来. 二.实现方法 1.文件上传

ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法_实用技巧

ASP.NET的FileUpload控件默认是不支持服务端的onchange事件的,此时可以用一种变通的方法来实现这一功能. 这就需要借用客户端的onchange事件,调用__doPostBack方法来用LinkButton的OnClick事件模拟一个事件触发的过程,具体代码如下: 客户端: <asp:FileUpload ID="fuPhoto" onchange="javascript:__doPostBack('lbUploadPhoto','')" r

基于ASP.NET+easyUI框架实现图片上传功能(表单)_实用技巧

基于ASP.Net +easyUI框架上传图片,实现图片上传,提交表单: <body> <link href="../../Easyui/themes/easyui.css" rel="stylesheet" type="text/css" /> <script charset="utf-8" src="../../Easyui/jquery.easyui.min.js" ty

asp.net实现的MD5加密和DES加解密算法类完整示例_实用技巧

本文实例讲述了asp.net实现的MD5加密和DES加解密算法类.分享给大家供大家参考,具体如下: #region MD5算法 public string md5(string str, int code) { if (code == 32) //32位加密 { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower(); } else /

ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0)_实用技巧

最近要做一个项目,正逢ASP.Net Core 1.0版本的正式发布.由于现代互联网的安全要求,HTTPS加密通讯已成主流,所以就有了这个方案. 本方案启发于一个旧版的解决方案: ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1) http://www.cnblogs.com/qin-nz/p/aspnetcore-using-https-on-dnx451.html?utm_source=tuicool&utm_medium=referral  在

ASP.NET MVC中使用jQuery时的浏览器缓存问题详解_实用技巧

介绍 尽管jQuery在浏览器ajax调用的时候对缓存提供了很好的支持,还是有必要了解一下如何高效地使用http协议. 首先要做的事情是在服务器端支持HTTP GET,定义不同的URL输出不同的数据(MVC里对应的就是action).如果要使用同一个地址获取不同的数据,那就不对了,一个HTTP POST也不行因为POST不能被缓存.许多开发人员使用POST主要有2个原因:明确了数据不能被缓存,或者是避免JSON攻击(JSON返回数组的时候可以被入侵). 缓存解释 jQuery全局对象里的ajax

基于ASP.NET+EasyUI框架实现图片上传提交表单功能(js提交图片)_实用技巧

我的风格,先给大家展示下效果图,具体效果图如下所示,如果大家感觉还不错很满意请参考实现代码. HTML的代码: <form id="ff" runat="server" method="post"> <div id="content" style="margin-left:50px;"> <table style="width:300px;" id=&quo