求算法!!!!!!!!!急
时间:2011-12-10
来源:互联网
是7*6格式的(42个格)
我用一个
[code=C#]
for (int i = 0; i < 6; i++) //拼接tr
{
for (int i = 0; i < 7; i++) //拼接td
{
//这地方没有什么算法根据本月第一天是星期几跳过拼接显示空白
//还有就是最后一天的后面也是空白(一共42个格)
}
}
[/code]
作者: yaoyuchiccc 发布时间: 2011-12-10
for (int i = 0; i < 6; i++) //拼接tr { for (int j = 0; j < 7; i++) //拼接td { //这地方没有什么算法根据本月第一天是星期几跳过拼接显示空白 //还有就是最后一天的后面也是空白(一共42个格) } }
作者: yaoyuchiccc 发布时间: 2011-12-10
你可以加
for (int i = 0; i < 7; i++)
{
if(i<(int)DateTimeFirstDat.DayOfWeek) {
html+="<td></td>";
}
else
html+="<td>"+0+"</td>";
}
作者: net_lover 发布时间: 2011-12-10
可以啊
你可以加
for (int i = 0; i < 7; i++)
{
if(i<(int)DateTimeFirstDat.DayOfWeek) {
html+="<td></td>";
}
else
html+="<td>"+0+"</td>";
}
哥看全问题·你那只能显示第一行
其它的满行都是错的
最后一样也是错的
作者: yaoyuchiccc 发布时间: 2011-12-10
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>";
for (int j = 0; j < 6; j++) //拼接tr
{
html += "<tr>";
for (int i = 0; i < 7; i++) //拼接td
{
if ((i < startWeek && j==0) || (i > endWeek && 5 == j))
{
html += "<td> </td>";
}
else
{
html += "<td>存在</td>";
}
}
html += "</tr>";
}
html += "</table>";
Response.Write(html);
作者: net_lover 发布时间: 2011-12-10
引用 2 楼 net_lover 的回复:
可以啊
你可以加
for (int i = 0; i < 7; i++)
{
if(i<(int)DateTimeFirstDat.DayOfWeek) {
html+="<td></td>";
}
else
html+="<td>"+0+"</td>";
}
哥看全问题·你那只能显示第一行
其它的满行都是错的
最后一样……
自己一点脑子都不想动啊,给你个提示还是不会写啊
作者: net_lover 发布时间: 2011-12-10
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(); }
作者: orain 发布时间: 2011-12-10
C# code
//给定如何一个日期 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> </td>"; } else { html += "<td>" + (++day) + "</td>"; } } html += "</tr>"; } html += "</table>"; Response.Write(html);
作者: net_lover 发布时间: 2011-12-10
引用 3 楼 yaoyuchiccc 的回复:
引用 2 楼 net_lover 的回复:
可以啊
你可以加
for (int i = 0; i < 7; i++)
{
if(i<(int)DateTimeFirstDat.DayOfWeek) {
html+="<td></td>";
}
else
html+="<td>"+0+"</td>";
}
哥看全问题·你……
说这话时候之前先试试你代码好使不好使
作者: yaoyuchiccc 发布时间: 2011-12-10
日历表
//给定如何一个日期
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;
int days = d2.Day;
for (int j = 0; j < 6; j++)
{
html += "<tr>";
for (int i = 0; i < 7; i++)
{
if ((i < startWeek && j == 0) || (i > endWeek && 5 == j) || (day >= days))
{
html += "<td> </td>";
}
else
{
html += "<td>" + (++day) + "</td>";
}
}
html += "</tr>" + Environment.NewLine;
if (day >= days) break;
}
html += "</table>";
Response.Write(html);
作者: net_lover 发布时间: 2011-12-10
直接测试下
日历表
//给定如何一个日期
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……
你耍猴呢?看你嵌套循环几个i?if哪个i·不用试了
作者: yaoyuchiccc 发布时间: 2011-12-10
作者: net_lover 发布时间: 2011-12-10
作者: net_lover 发布时间: 2011-12-10
第一个循环是写文字的, 你不要可以去掉,
C# code
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\"> </dfn><div class=\"base_price\"><dfn>¥</dfn>3,760起</div></div></td>"); } } #endregion } } if (t == 0) { sb.Append("</thead>"); } else { sb.Append("</tbody>"); } } sb.Append("</table>"); return sb.ToString();
作者: yaoyuchiccc 发布时间: 2011-12-10
第一个循环是写文字的, 你不要可以去掉,
写出来了
C# code
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\"> </dfn><div class=\"base_price\"><dfn>¥</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\"> </dfn><div class=\"base_price\"><dfn>¥</dfn>3,760起</div></div></td>"); day++; } }
作者: yaoyuchiccc 发布时间: 2011-12-10
作者: Sandy945 发布时间: 2011-12-12
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28