翼度科技»论坛 编程开发 .net 查看内容

ASP.NET做日历

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
一周一周来算,注,如果本月1号是星期日,则这一月共有六周,即六行,所以干脆每月都输出6周就行了,然后再算第一周里的本月一号是周几,第一周里本月又占了几天。。。呃。。。反正很乱,想了一上午,现在写出来了倒不知道如何解释了。。算了。。直接上代码。。
  1.     //日历界面
  2.     public IActionResult RiLi()
  3.     {
  4.         List<Model.VM_OneDay>[] ss = new List<Model.VM_OneDay>[6];
  5.         DateTime nowmonth01 = DateTime.Parse( DateTime.Now.ToString("yyyy-MM-01")); //本月一号
  6.         int week01 =(int)nowmonth01.DayOfWeek; //本月一号是周几?
  7.         int zhanjitian = 7 - week01; //本月在第一周占了几天,如3月1日是周三,则第一周则占了5天,用于算第2,3,4周
  8.         for (int i = 0; i < 6; i++)
  9.         {
  10.             List<Model.VM_OneDay> aa = new List<Model.VM_OneDay>();
  11.             if (i == 0)
  12.             {
  13.                 //第一周
  14.                 for (int j = 0; j < 7; j++)
  15.                 {
  16.                     if (j>=(int)week01)
  17.                     {
  18.                         int x = j - week01;
  19.                         DateTime date = nowmonth01.AddDays(x);
  20.                         if (x==0)
  21.                         {
  22.                             aa.Add(new Model.VM_OneDay() {Date=date, DateStr = date.ToString("M月d日") }); //1号
  23.                         }
  24.                         else
  25.                         {
  26.                             aa.Add(new Model.VM_OneDay() {Date = date, DateStr = date.Day.ToString() });
  27.                         }
  28.                      
  29.                     }
  30.                     else
  31.                     {
  32.                         DateTime date = nowmonth01.AddDays(-(week01-j));
  33.                         aa.Add(new Model.VM_OneDay() {Date = date, DateStr = date.Day.ToString() });
  34.                     }
  35.                 }
  36.             }
  37.             else
  38.             {
  39.                 for (int j = 0; j < 7; j++)
  40.                 {
  41.                     int x = (i - 1) * 7 + zhanjitian + j;
  42.                     DateTime date = nowmonth01.AddDays(x);
  43.                     if (date.Day == 1)
  44.                     {
  45.                         aa.Add(new Model.VM_OneDay() {Date = date, DateStr = date.ToString("M月d日") });
  46.                     }
  47.                     else
  48.                     {
  49.                         aa.Add(new Model.VM_OneDay() {Date = date, DateStr = date.Day.ToString() });
  50.                     }
  51.                     
  52.                 }
  53.             }
  54.             ss[i] = aa;
  55.         }
  56.         ViewBag.data = ss;
  57.         return View();
  58.     }
复制代码
  最后出来的界面:

日历静态页:http://www.niunan.net/rili.html

来源:https://www.cnblogs.com/niunan/archive/2023/03/20/17235952.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具