C# 一个月的天数太多
我似乎无法理解这一点 我正在C# 一个月的天数太多,c#,asp.net-mvc-4,calendar,C#,Asp.net Mvc 4,Calendar,我似乎无法理解这一点 我正在MVC4中生成年度日历。但由于某些原因,它显示了月份中的天数太多 这可能是一个迭代错误,但我似乎没有看到它 .cshtml文件 <table> <tr> <td> </td> @{ for(int nr = 0; nr<12; nr++) { <td> <p>
MVC4
中生成年度日历。但由于某些原因,它显示了月份中的天数太多
这可能是一个迭代错误,但我似乎没有看到它
.cshtml文件
<table>
<tr>
<td>
</td>
@{
for(int nr = 0; nr<12; nr++)
{
<td>
<p>
@monthNames[nr]
</p>
</td>
}
}
</tr>
@{
for(int day = 1; day <= 31; day++)
{
<tr>
<td>
<p>
@day
</p>
</td>
@{
for(int month = 1; month <= 12; month++)
{
if (day <= DateTime.DaysInMonth(year, month))
{
DateTime weekday = new DateTime(year, month, day);
<td>
@{
foreach (var thisEvent in events)
{
if ((thisEvent.day == day) && (thisEvent.month == month) && (thisEvent.year == year))
{
<div style="background-color:@thisEvent.description.eventType.color;">
@thisEvent.description.name
</div>
}
}
}
<p>
@weekday.ToString("dddd", new System.Globalization.CultureInfo("da-DK"))
</p>
</td>
}
}
}
</tr>
}
}
</table>
@{
对于(国际自然资源=0;国际自然资源<代码>国际自然资源=2014年;
for(int month=1;month发现错误
我不得不在列表中添加一个else
if (day <= DateTime.DaysInMonth(year, month))
if(天)第一个循环应该是月,第二个循环应该是天,这似乎很自然。也就是说,12行和28..31列。我觉得奇怪的是,你先迭代了31天,你打算做什么样的布局。我会迭代几个月,然后在这几天内直到第二天。Sinmont根据你的elabo更新了这个问题定量,那么我看不出问题所在。如果你有月份作为列,那么你就必须有32行,一行用于标题,另外31行用于覆盖更长月份的所有可能天数……你到底想“修复”什么?“月份中的天数太多”…-这是什么意思?你每个月有额外的一天吗?这是一个表布局问题吗?你看到了什么?在内for循环和内-外for循环之前获得月内天数。将其用作内循环的终止条件。这样你就不必检查我怀疑的天(因此出现了“表布局问题”)我对你的问题的评论中的问题。很高兴你把它修好了。
if (day <= DateTime.DaysInMonth(year, month))
if (day <= DateTime.DaysInMonth(year, month))
{
<td>Day exist</td>
}
else
{
<td>Day doesn't exist</td>
}