C#内置的时间类很丰富,利用这些类可以轻松实现日历的界面,这里做了一个简单的示例。其实思路很简单,使用一个7行(一个月最多有6个星期,首行放星期的名称)* 7列(每个星期有7天)的表格来存放日期。
string CalendarHtml(int year, int month, int day)
{
StringBuilder sb = new StringBuilder();
// 1、指定一个月,看它有几天
int days = DateTime.DaysInMonth(year, month);
// 2、看看这个月的第一天是星期几
DateTime dt = DateTime.Parse(string.Format("{0}-{1}-1", year, month));
int wk = (int)dt.DayOfWeek;
int dayIndex = 0;
sb.Append("<table border='1'>");
sb.Append("<tr>");
sb.AppendFormat("<th colspan='7'>{0}-{1}-{2}</th>", year, month, day);
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<th>日</th><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th>六</th>");
sb.Append("</tr>");
for (int i = 0; i < 6; i++) // 一个月最多有6周
{
sb.Append("<tr>");
for (int j = 0; j < 7; j++) // 每个星期有7天
{
if (i == 0) // 第一周
{
if (wk > j)
{
sb.Append("<td> </td>");
}
else
{
dayIndex++;
sb.AppendFormat("<td>{0}</td>", dayIndex);
}
}
else
{
if (dayIndex < days)
{
dayIndex++;
sb.AppendFormat("<td>{0}</td>", dayIndex);
}
}
}
sb.Append("</tr>");
}
sb.Append("</table>");
return sb.ToString();
}
程序运行之后最终的显示效果如下:

当然,单单是只显示了日期还是不够的,我们还可以在里面加些事件,如果是应用于Web应用程序那是非常方便的事情。
| 昵称: | |
| 邮件: | |
| 链接: | |
评论列表