一周一周來算,注,如果本月1號是星期日,則這一月共有六周,即六行,所以干脆每月都輸出6周就行了,然后再算第一周里的本月一號是周幾,第一周里本月又占了幾天,,,呃,,,反正很亂,想了一上午,現在寫出來了倒不知道如何解釋了,,算了,,直接上代碼,,
//日歷界面
public IActionResult RiLi()
{
List<Model.VM_OneDay>[] ss = new List<Model.VM_OneDay>[6];
DateTime nowmonth01 = DateTime.Parse( DateTime.Now.ToString("yyyy-MM-01")); //本月一號
int week01 =(int)nowmonth01.DayOfWeek; //本月一號是周幾?
int zhanjitian = 7 - week01; //本月在第一周占了幾天,如3月1日是周三,則第一周則占了5天,用于算第2,3,4周
for (int i = 0; i < 6; i++)
{
List<Model.VM_OneDay> aa = new List<Model.VM_OneDay>();
if (i == 0)
{
//第一周
for (int j = 0; j < 7; j++)
{
if (j>=(int)week01)
{
int x = j - week01;
DateTime date = nowmonth01.AddDays(x);
if (x==0)
{
aa.Add(new Model.VM_OneDay() {Date=date, DateStr = date.ToString("M月d日") }); //1號
}
else
{
aa.Add(new Model.VM_OneDay() {Date = date, DateStr = date.Day.ToString() });
}
}
else
{
DateTime date = nowmonth01.AddDays(-(week01-j));
aa.Add(new Model.VM_OneDay() {Date = date, DateStr = date.Day.ToString() });
}
}
}
else
{
for (int j = 0; j < 7; j++)
{
int x = (i - 1) * 7 + zhanjitian + j;
DateTime date = nowmonth01.AddDays(x);
if (date.Day == 1)
{
aa.Add(new Model.VM_OneDay() {Date = date, DateStr = date.ToString("M月d日") });
}
else
{
aa.Add(new Model.VM_OneDay() {Date = date, DateStr = date.Day.ToString() });
}
}
}
ss[i] = aa;
}
ViewBag.data = https://www.cnblogs.com/niunan/archive/2023/03/20/ss;
return View();
}
最后出來的界面:

日歷靜態頁:http://www.niunan.net/rili.html
擼碼:復制、粘貼,拿起鍵盤就是“干”!!!轉載請註明出處,本文鏈接:https://www.uj5u.com/net/547417.html
標籤:.NET技术
上一篇:WPF監聽快捷鍵的幾種方式
下一篇:C# 探秘如何優雅的終止執行緒
