用做一个html日期显示的表格
是7*6格式的(42个格)我用一个
    for (int i = 0; i < 6; i++)  //拼接tr
        {
               for (int i = 0; i < 7; i++)   //拼接td
                 {
                     
                      //这地方没有什么算法根据本月第一天是星期几跳过拼接显示空白
                      //还有就是最后一天的后面也是空白(一共42个格)
                 }            
         }

解决方案 »

  1.   


    for   (int   i   =   0;   i   <   6;   i++)     //拼接tr 
                    { 
                                  for   (int   j   =   0;   j   <   7;   i++)       //拼接td 
                                      { 
                                              
                                                //这地方没有什么算法根据本月第一天是星期几跳过拼接显示空白 
                                                //还有就是最后一天的后面也是空白(一共42个格) 
                                      }                         
                      } 
      

  2.   

    可以啊
    你可以加
    for   (int   i   =   0;   i   <   7;   i++)  
    {
     if(i<(int)DateTimeFirstDat.DayOfWeek) {
      html+="<td></td>";
    }
    else
    html+="<td>"+0+"</td>";}
      

  3.   

    本帖最后由 net_lover 于 2011-12-10 15:22:29 编辑
      

  4.   


    private string BuildCalendar(int year, int month)
    {
    DateTime date = new DateTime(year, month, 1);
    int days = date.AddMonths(1).AddDays(-1).Day;

    System.Text.StringBuilder table = new System.Text.StringBuilder("<table border='1'>");
    string fmt = "<td>{0}</td>"; int week = (int)date.DayOfWeek;
    if (week != 0)
    table.Append("<tr><td colspan='" + week + "'>空白</td>"); for (int i = 1; i <= days; ++i)
    {
    week %= 7;
    if (week == 0)
    table.Append("<tr>");
    table.AppendFormat(fmt, i);
    if (week == 6)
    table.Append("</tr>");
    ++week;
    } if (week < 7)
    table.Append("<td colspan='" + (7 - week) + "'>空白</td></tr>"); table.Append("</table>"); return table.ToString();
    }
      

  5.   

    日历表
    //给定如何一个日期
    DateTime x = new DateTime(2011, 10, 13);
    //得到该日期的第一天的星期
    DateTime d1 = new DateTime(x.Year, x.Month, 1);
    DateTime d2 = d1.AddMonths(1).AddDays(-1);
    int startWeek = (int)d1.DayOfWeek;
    int endWeek = (int)d2.DayOfWeek;
    String html = "<table border=1>";
    int day = 0;
    String[] weekName = { "日", "一", "二", "三", "四", "五", "六" };
    for (int j = 0; j < 6; j++)     //拼接tr 
    {
      if (j == 0)
      {
        html += "<tr>";
        for (int i = 0; i < 7; i++)
        {
          html += "<th>星期" + weekName[i] + "</th>";
        }
        html += "</tr>";
      }
      html += "<tr>";
      for (int i = 0; i < 7; i++)       //拼接td 
      {
        if ((i < startWeek && j == 0) || (i > endWeek && 5 == j))
        {
          html += "<td>&nbsp;</td>";
        }
        else
        {
          html += "<td>" + (++day) + "</td>";
        }
      }
      html += "</tr>";
    }html += "</table>";
    Response.Write(html);
      

  6.   

    本帖最后由 net_lover 于 2011-12-10 16:05:10 编辑
      

  7.   

    你耍猴呢?看你嵌套循环几个i?if哪个i·不用试了
      

  8.   

    DateTime x = DateTime.Now;
                //得到该日期的第一天的星期
                DateTime d1 = new DateTime(x.Year, x.Month, 1);
                DateTime d2 = d1.AddMonths(1).AddDays(-1);
                int startWeek = (int)d1.DayOfWeek;
                int endWeek = (int)d2.DayOfWeek;
                int days = d2.Day;
                int day = 0;
                sb.Append("<table id=\"bigCal\" class=\"pripackage_date_list\"  cellpadding=\"0\" cellspacing=\"0\">");
                #region
                for (int t = 0; t < 2; t++)
                {
                    if (t == 0)
                    {
                        sb.Append("<thead>");
                    }
                    else
                    {
                        sb.Append("</tbody>");
                    }                int endStart = t == 1 ? 6 : 1;
                    for (int i = 0; i < endStart; i++)
                    {                    sb.Append("<tr>");
                        for (int j = 0; j < 7; j++)
                        {
                            #region -加载星期几表头
                            if (endStart == 1) //第一行?
                            {
                                string strClass = "";
                                if (j == 0)
                                    strClass = "class=\"pripackage_sun\"";
                                else if (j == 6)
                                    strClass = "class=\"pripackage_sat\"";
                                sb.Append("<td " + strClass + ">星期" + nStr1[j] + "</td>");                        }
                            #endregion
                            #region -加载日期
                            else
                            {
                                if ((i < startWeek && j == 0) || (i > endWeek && 5 == j) || (day >= days))
                                {
                                    sb.Append("<td></td>");
                                }
                                else
                                {
                                    sb.Append("<td class=\"\"><div class=\"pripackage_dateon\"><span></span>" + (++day) + "<dfn class=\"pripackage_state03\">&nbsp;</dfn><div class=\"base_price\"><dfn>&#165;</dfn>3,760起</div></div></td>");
                                }
                            }
                            #endregion
                        }                }
                    if (t == 0)
                    {
                        sb.Append("</thead>");
                    }
                    else
                    {
                        sb.Append("</tbody>");
                    }
                }
                sb.Append("</table>");
                return sb.ToString();
      

  9.   


    写出来了       if (i == 0)
                                {
                                    if (j < firstDayWeek)
                                    {                                    sb.Append("<td></td>");
                                    }
                                    else
                                    {
                                        sb.Append("<td class=\"\"><div class=\"pripackage_dateon\"><span></span>" + (++day) + "<dfn class=\"pripackage_state03\">&nbsp;</dfn><div class=\"base_price\"><dfn>&#165;</dfn>3,760起</div></div></td>");
                                        day++;
                                    }
                                }
                                else
                                {
                                    if (days <= day)
                                        sb.Append("<td></td>");
                                    else
                                    {
                                        sb.Append("<td class=\"\"><div class=\"pripackage_dateon\"><span></span>" + (++day) + "<dfn class=\"pripackage_state03\">&nbsp;</dfn><div class=\"base_price\"><dfn>&#165;</dfn>3,760起</div></div></td>");
                                        day++;
                                    }
                                }
      

  10.   

    http://topic.csdn.net/u/20111108/23/d28f5539-063b-4754-9879-9a061861ec27.html
      

  11.   

    这种东西用服务端来做就是个错误
    现在人都说ASP性能差,我看最主要的原因是用的人不专业。jquery的ui已经有日历这功能了<!DOCTYPE html>
    <html>
    <head>
      <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
      <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>  <script>
      $(document).ready(function() {
        $("#datepicker").datepicker();
      });
      </script>
    </head>
    <body style="font-size:62.5%;"><div type="text" id="datepicker"></div></body>
    </html>
    保存为HTML文件看效果