ASP.NET做日历

一周一周来算,注,如果本月1号是星期日,则这一月共有六周,即六行,所以干脆每月都输出6周就行了,然后再算第一周里的本月一号是周几,第一周里本月又占了几天。。。呃。。。反正很乱,想了一上午,现在写出来了倒不知道如何解释了。。算了。。直接上代码。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//日历界面
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

posted @   牛腩  阅读(324)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示