js实现日历
这周写自己的项目发现又用到日历了,加之自己毕业之后的第一个工作中遇到的任务也是需要写个日历(组员写了,我就不用写了)
今天就来好好折腾一下日历是怎么写的。
首先,我们看看windows的日历。发现总共有这么几个元素。先实现试试。
1.年份的选择、月份的选择
2.周一~周日(周日~周六)
3.日历格子6*7=42
从数据的角度来分析日历的实现是比较简单的
1.我们需要显示一个当前时间的结构-newDate()
2.我们需要显示当月的信息-[星期(周一~周日),日期(1-[28,29,30,31])]
其中我们只要知道了每个月的1日是星期几,就能很容易地摆放后面的日子(万事开头难)。
- 我们最多需要6行来显示我们的日期,因为要第一排如果只包含本月的一天6(上个月的)+(1+4*7),这样就五行了,当月天数若大于29,就显示不下了
- 确定了6行之后,我们发现我们可能需要获取上个月,和下个月多出来的几天的摆放位置。
- 不同年份的不同月的2月份,我们知道它的日期是不同的,所以我们还需要判断平年还是闰年。
3.显示上个月,下个月的切换。我们发现需要有个函数来帮我们更新日历。
分析完之后,让我们跟着新增/修改一些代码。
Document 上一月 下一月