简易的日历

<style>

* {

padding: 0;

margin: 0;

list-style: none;

}

.box {

width: 280px;

padding: 20px;

background-color: #000;

color: #fff;

margin: auto;

}

.box p {

display: flex;

justify-content: space-between;

line-height: 30px;

}

ul {

display: flex;

margin-top: 20px;

flex-wrap: wrap;

}

li {

width: 40px;

text-align: center;

line-height: 30px;

}

</style>

</head>

<body>

<div class="box">

<p>

<span id="prev">上</span>

<span id="time"></span>

<span id="next">下</span>

</p>

<ul>

<li>一</li>

<li>二</li>

<li>三</li>

<li>四</li>

<li>五</li>

<li>六</li>

<li>日</li>

</ul>

<ul id="list">

</ul>

</div>

<script>

var date = new Date();

var opre = get('prev');

var otime = get('time');

var onext = get('next');

var olist = get('list')

function get(id) {

return document.getElementById(id)

}


 

opre.onclick = function () {//点击事件不写参数

date.setDate(0);

renderhead(date);

renderul(date)

}

onext.onclick = function () {

date.setDate(32);

renderhead(date);

renderul(date)

}


 

renderul(date);

function renderul(date) {

var res = '';

var list1 = now(date);

var list2 = prev(date);

for (var i in list2) {

res += `<li style="color:green;">${list2[i]}</li>`

}

//顺序不可以错

for (var i in list1) {

res += `<li>${list1[i]}</li>`

}

for (var i = 1; i <= 42 - list1.length - list2.length; i++) {

res += `<li style="color:green;">${i}</li>`

}

olist.innerHTML = res;

}

renderhead(date)

function renderhead(date) {

var date = new Date(date);

var year = date.getFullYear();

var mon = date.getMonth() + 1;

otime.innerHTML = year + '-' + mon //忘记怎么渲染!

}





 

function now(date) {

var date = new Date(date);

date.setDate(40);

date.setDate(0);

var maxday = date.getDate();

// console.log(maxday);

var list = [];

for (var i = 1; i <= maxday; i++) {

list.push(i)

}

// console.log(list);

return list;

}

function prev(date) {

var date = new Date(date);

// 在把天数推到上个月之前,要获取本月的第一天是星期几

date.setDate(1);

var week = date.getDay();

// 本月的第0天也就是上个月的最后一天

date.setDate(0);

var maxDay = date.getDate();

console.log(maxDay); // 31

var list = [];

// 上个月要显示几天实际上跟本月的第一天是星期几有关系? ? = 31 - week + 2

for (var i = maxDay - week + 2; i <= maxDay; i++) {

list.push(i)

}

console.log(list);

return list

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值