Я пытался создать календарь с MVC (нужны классы для этого проекта) и c #, и я не смог сопоставить день месяца с днем недели для других месяцев.
Я пробовал ответ от этого .
Класс моей модели -
public class DayOfMonthViewModel
{
public DateTime LastDayOfLastMonth { get; set; }
public DateTime FirstDayOfNextMonth { get; set; }
public DateTime FirstDayOfTheMonth { get; set; }
public int LastDayOfTheMonth { get; set; }
public int DayOfMonth { get; set; }
public DayOfWeek DayOfWeek { get; set; }
}
public class PresenceRecordViewModel
{
public List<DayOfMonthViewModel> DaysOfMonth { get; set; }
}
Контроллер -
int days = 0;
int month = DateTime.UtcNow.Month;
int year = DateTime.UtcNow.Year;
var DaysInMonth = DateTime.DaysInMonth(year, month);
switch (month)
{
case 1:
}
PresenceRecordViewModel prv = new PresenceRecordViewModel()
{
DaysOfMonth = new List<DayOfMonthViewModel>()
};
for (int i = 1; i <= days; i++)
{
DayOfMonthViewModel dom = new DayOfMonthViewModel()
{
LastDayOfLastMonth = new DateTime(year, month, 1).AddDays(-1),
FirstDayOfTheMonth = new DateTime(year, month, 1),
LastDayOfTheMonth = DaysInMonth,
DayOfMonth = i,
AfternoonEndHour = "18:00",
AfternoonStartHour = "14:00",
ExternalService = false,
ExtraHoursList = new List<ExtraHoursViewModel>(),
MorningEndHour = "13:00",
MorningStartHour = "9:00",
DayOfWeek = new DateTime(year, month, i).DayOfWeek,
FirstDayOfNextMonth = new DateTime(year, 1, 1).AddMonths(1),
};
prv.DaysOfMonth.Add(dom);
}
return View(prv);
Просмотр-
<table class="table color-table info-table table-bordered">
<thead align="center">
<tr><h1>Mês : @DateTime.UtcNow.Month.ToString("d")</h1></tr>
<tr>
<th height="55" style="text-align:center">DOM</th>
<th style="text-align:center">SEG</th>
<th style="text-align:center">TER</th>
<th style="text-align:center">QUA</th>
<th style="text-align:center">QUI</th>
<th style="text-align:center">SEX</th>
<th style="text-align:center">SÁB</th>
</tr>
</thead>
<td bgcolor="#666666"><h3>style="color:black">@Model.DaysOfMonth[1].LastDayOfLastMonth.Day.ToString("d")</h3>
</td>
@for (int i = Model.DaysOfMonth[0].DayOfMonth; i < Model.DaysOfMonth.Count(); i++)
{
if (i % 7 == 0 && i > 0)
{
@:<tr></tr>
}
if (Model.DaysOfMonth[i].DayOfWeek == DayOfWeek.Monday || Model.DaysOfMonth[i].DayOfWeek == DayOfWeek.Sunday)
{
<td bgcolor="#666666">
<h3 align="right" style="color:black">@i</h3>
</td>
}
else
{
<td bgcolor="#ffffff">
<h3 align="right" style="color:black">@i</h3>
</td>
}
}
<td bgcolor="#ffffff">
<h3 align="right" style="color:black">@Model.DaysOfMonth[1].LastDayOfTheMonth</h3>
</td>
<td bgcolor="#ffffff">
<h3 align="right" style="color:black">@Model.DaysOfMonth[1].FirstDayOfNextMonth.Day.ToString("d")</h3>
</td>
</table>
Я надеюсь, что он будет похож на тот сайт, который я дал выше, но вместо этого использую MVC.