作者:mobiledu2502869373 | 来源:互联网 | 2022-03-06 03:20
代码如下:
代码如下:
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 = "
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期天 |
";
//判断开始时间为星期几,如,如果是星期三,则需要前面空出2个单元格出来,以此类推
switch (dt1.DayOfWeek.ToString())
{
case "Tuesday":
table_td += " | ";
break;
case "Wednesday":
table_td += "
| | ";
break;
case "Thursday":
table_td += "
| | | ";
break;
case "Friday":
table_td += "
| | | | ";
break;
case "Saturday":
table_td += "
| | | | | ";
break;
case "Sunday":
table_td += "
| | | | | | ";
break;
}
//递归至结束时间
for (int i = 0; i {
string sdate = dt1.AddDays(i).Day.ToString();
switch (dt1.AddDays(i).DayOfWeek.ToString())
{
case "Monday":
table_td += "" + sdate + " | ";
break;
case "Tuesday":
table_td += "" + sdate + " | ";
break;
case "Wednesday":
table_td += "" + sdate + " | ";
break;
case "Thursday":
table_td += "" + sdate + " | ";
break;
case "Friday":
table_td += "" + sdate + " | ";
break;
case "Saturday":
table_td += "" + sdate + " | ";
break;
case "Sunday":
table_td += "" + sdate + " |
";
break;
}
}
//结束
table_td += "
";
打印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 {
if (week[i].Trim().ToUpper() == item.ToUpper().Trim())
{
index = i;
break;
}
}
return index;
}
代码如下:
StringBuilder sb = new StringBuilder();
sb.Remove(0, sb.Length);
sb.Append("
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期天 |
");
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 dtTemp=dt1.AddDays(i);
index = weekIndex(dtTemp.DayOfWeek.ToString());
if (index == 0 && i > 0)
{
sb.AppendFormat("{0} | ", dtTemp.ToString("MM-dd"));
}
else if (index > 0 && i == 0)
{
sb.Append("
");
for (int j = 0; j <= index - 1; j++)
{
sb.Append(" | ");
}
sb.AppendFormat("{0} | ", dtTemp.ToString("MM-dd"));
}
else if (index == 6 && i>0)
{
sb.AppendFormat("{0} |
", dtTemp.ToString("MM-dd"));
}
else {
sb.AppendFormat("{0} | ", dtTemp.ToString("MM-dd"));
}
}
sb.Append("
");
Response.Write(sb.ToString());
看完后,大致上的想法是一样的,只是.......初学者没办法。继续努力。