一周一周來算,註,如果本月1號是星期日,則這一月共有六周,即六行,所以乾脆每月都輸出6周就行了,然後再算第一周里的本月一號是周幾,第一周里本月又占了幾天。。。呃。。。反正很亂,想了一上午,現在寫出來了倒不知道如何解釋了。。算了。。直接上代碼。。 //日曆界面 public IActionResult ...
一周一周來算,註,如果本月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 = ss; return View(); }
最後出來的界面:
日曆靜態頁:http://www.niunan.net/rili.html
擼碼:複製、粘貼,拿起鍵盤就是“乾”!!!