首页 新闻 会员 周边

asp.net 由指定日期获取其为星期几

0
悬赏园豆:50 [已解决问题] 解决于 2010-03-16 11:25

  首先,“指定日期”为一时间段,比如2010-3-16到2010-4-13

  我想获取2010-3-16是星期几,然后一直获取到2010-4-13

然后以:

星期一   星期二   星期三    星期四   星期五   星期六   星期天

            3-16     3-17      3-18     3-19    3-20     3-21

3-22     3-23     .......................................

以此类推,直到2010-4-13.。。。

问题大致就是以上这些了,希望大家能帮帮忙,十分感谢了。

问题补充: 问题已解决,感谢各位,特别是“卡索”,由于代码过长,没办法贴出来,我将在专制我的博客。贴出我自己认为核心的吧。 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>"+sdate+"</td>"; break; case "Tuesday": table_td += "<td>" + sdate + "</td>"; break; case "Wednesday": table_td += "<td>" + sdate + "</td>"; break; case "Thursday": table_td += "<td>" + sdate + "</td>"; break; case "Friday": table_td += "<td>" + sdate + "</td>"; break; case "Saturday": table_td += "<td>" + sdate + "</td>"; break; case "Sunday": table_td += "<td>" + sdate + "</td></tr><br />"; break; } }
痴呆先生、的主页 痴呆先生、 | 初学一级 | 园豆:114
提问于:2010-03-16 09:29
< >
分享
最佳答案
0

直接代码了!呵呵 Asp.Net中写的

DateTime dt1 = new DateTime(2010, 3, 16);
DateTime dt2
= new DateTime(2010, 4, 13);
TimeSpan ts
= dt2 - dt1;
for (int i = 0; i < ts.Days; i++) {
Response.Write(dt1.AddDays(i).DayOfWeek.ToString());
Response.Write(
"<br/>");
}

 如果这里需要输出中文只需要做个判断 if(dt1.AddDays(i).DayOfWeek==DayOfWeek.Friday) 输出中文的 星期五 即可

上班间隙我也写了一个 可参考如下:

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>&nbsp;</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());
收获园豆:50
西越泽 | 专家六级 |园豆:10775 | 2010-03-16 09:42
请问,这些星期获取出来后,如何排列成我所说的那个样式?谢谢啦,
痴呆先生、 | 园豆:114 (初学一级) | 2010-03-16 10:07
我已经解决了,排出的样式。 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><t
痴呆先生、 | 园豆:114 (初学一级) | 2010-03-16 10:56
@痴呆先生、: 呵呵 我也写了一个 功能是实现了 只是个人觉得 不是很好!呵呵 可参考下
西越泽 | 园豆:10775 (专家六级) | 2010-03-16 11:03
其他回答(3)
0

DateTime.Now.DayOfWeek

可以获取当天是周几,其他的按照这样也能计算出来。

清海扬波 | 园豆:825 (小虾三级) | 2010-03-16 09:38
这个我是知道的,但还是要谢谢你的回答。
支持(0) 反对(0) 痴呆先生、 | 园豆:114 (初学一级) | 2010-03-16 10:07
0

时间转星期几:DateTime.Now.ToString("dddd")//今天星期几。

你写的这个功能应该是只要算好第一个日期是星期几就ok了,每行限制7个单元格。绑定.

邢少 | 园豆:10926 (专家六级) | 2010-03-16 09:40
我想请问如何绑定?
支持(0) 反对(0) 痴呆先生、 | 园豆:114 (初学一级) | 2010-03-16 10:08
0

DateTime dt1 = new DateTime(2010, 3, 16);
Response.Write(dt1.DayOfWeek.ToString());

把日期转为DateTime就可以取到是星期几了

风浪 | 园豆:2996 (老鸟四级) | 2010-03-16 10:03
获取星期几,我是知道,我想问的主要是如何排列出来。但还是感谢你了。
支持(0) 反对(0) 痴呆先生、 | 园豆:114 (初学一级) | 2010-03-16 10:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册