js实现:制作年历利用内置对象的Date对象方法

结果如下:

 输入你想查看年历的哪一年,点击确定。结果如下:例如输入‘2020’,点击确定结果如下

 下面是代码部分:

首先是css样式;

 <style>
        body {
            text-align: center;
        }

        .box {
            margin: 0 auto;
            width: 880px;
        }

        .title {
            background: #ccc;
        }

        table {
            height: 200px;
            width: 200px;
            font-size: 12px;
            text-align: center;
            float: left;
            margin: 10px;
            font-family: arial;
        }
    </style>

html 里面的内容可以不写 用js写入;

下面是js 代码:

  <script>
        var year = parseInt(prompt('输入要查看的年份:'));
        document.write(calendar(year));//调用函数生成指定年份的年历
        function calendar(y) {
            //获取指定年份1月1日的星期数值
            var w = new Date(y, 0).getDay();
            var html = '<div class="box">';

            //拼接每个月份的表格
            for (m = 1; m <= 12; m++) {
                html += '<table>';
                html += '<tr class="title"><th colspan="7">' + y + '年' + m + ' 月</th></tr>';
                html += '<tr><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>'

                //获取每个月份共有多少天
                var max = new Date(y, m, 0).getDate();

                html += '<tr>';//开始<tr>标签
                for (d = 1; d <= max; d++) {
                    if (w && d == 1) {//如果该月的第1天不是星期日,则填充空白
                        html += '<td colspan ="' + w + '"> </td>';
                    }
                    html += '<td>' + d + '</td>';
                    if (w == 6 && d != max) {//如果星期六不是该月的最后一天,则换行
                        html += '</tr><tr>';
                    } else if (d == max) {//该月的最后一天,闭合</tr>标签
                        html += '</tr>';
                    }
                    w = (w + 1 > 6) ? 0 : w + 1;
                }
                html += '</table>';
            }
            html += '</div>';
            return html;
        }

    </script>

常用的Date对象:

getFullYear()   获取当前年份,四位数字 例如2020

setFullYear(value)  用来设置年份。并且会自动增加。

getMonth()  用来获取月份,范围0~11(0表示一月,1表示二月,依次类推)

setMonth(value)  设置月份。会自动增加,例如写几天后是几月。如果天数较多,超出这个月的最大日期,会自动转入下一个月。其他的也是同理。

getDate()   获取月份中的某一天,范围1~31

setDate(value)  设置月份中的某一天

getHours()  获取小时数,返回0~23

setHours(value)   设置小时数

getMinutes()  获取分钟数,范围0~59

setMinutes(value)  设置分钟数

getSeconds()  获取秒数,范围0~59

setSeconds(value)  设置秒数

getMilliseconds()  获取毫秒数,范围0~999

setMilliseconds(value)  设置毫秒数

getTime()  获取从1970-01-01 00:00:00距离Date对象所代表时间的毫秒数

setTime(value)  通过从1970-01-01 00:00:00计时的毫秒数来设置时间

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值