效果图:

html代码:

        <div id="date">
<p>
<span id="prev">上一月</span>
<span id="year">2022</span>
<span id="next">下一月</span>
</p>
<h5 id="month">七月</h5>
<ul id="title">
<li>日</li>
<li>一</li>
<li>二</li>
<li>三</li>
<li>四</li>
<li>五</li>
<li>六</li>
</ul>
<ul id="days"></ul>
</div>

css代码:

        *{
margin: 0px;
padding: 0px;
}
#date{
width: 300px;
padding: 10px;
border: 1px solid #000000;
}
#date>p{
display: flex;
}
#date>p>span{
display: inline-block;
width: 100px;
text-align: center;
}
#month{
text-align: center;
font-weight:;
}
#title{
list-style: none;
display: flex;
width: 300px;
padding:;
margin:; }
#title>li{
flex:;
text-align: center;
width: 100%;
background: #C0C0C0;
}
#days{
height: 250px;
margin-top: 10px;
} #days>li{
list-style: none;
text-align: center;
float: left;
width: 42.28px;
height: 42.28px;
}
.active{
color:orange;
}

javascript代码:

    let date=new Date();
add();
function add(){ let year=date.getFullYear()
document.getElementById("year").innerText=year
let month=date.getMonth();
let monthArr=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];
document.getElementById("month").innerText=monthArr[month];
// 获取当天的天数
let currentDay=date.getDate()
// 获取每个月的第一天是周几
let week=new Date(year,month,1).getDay();
let html=""
// 代表前面空白的li标签
for(var i=0;i<week;i++){
console.log(i)
html+="<li></li>"
}
// 获取每个月的天数的最后一天
let lastDay=new Date(year,month+1,0).getDate()
for(var i=1;i<=lastDay;i++){
if(i==currentDay){
html+=`<li class="active">${i}</li>`
}else{
html+=`<li>${i}</li>`
}
}
document.getElementById("days").innerHTML=html
}
document.getElementById("prev").onclick=function(){
date.setMonth(date.getMonth()-1)
add();
}
document.getElementById("next").onclick=function(){
date.setMonth(date.getMonth()+1)
add();
}

关键代码是

new Date(year,month,1).getDay()  获取每个月的第一个天是星期几

new Date(year,month+1,0).getDate()  获取每个月的最后一天是几号

最新文章

  1. Android探索之AIDL实现进程间通信
  2. dll学习
  3. 使用 screen 管理你的远程会话
  4. MySql的日常管理
  5. Ubuntu12.04安装中文字体(转)
  6. 导致Asp.Net站点重启的10个原因 ,记录重启原因
  7. sqlserver2008 如何定时清理索引碎片
  8. 解决高版本 Google Chrome 扩展程序强制停用问题 -摘自网络
  9. Modelsim覆盖率
  10. Failed to install *.apk on device &#39;emulator-5554&#39;: timeout
  11. python动态类型
  12. OpenStack Paste.ini详解(二)
  13. 2018-2019 20175232 实验二《Java面向对象程序设计》实验报告
  14. Python学习之路基础篇--04Python基础+数据类型
  15. Ignite(三): Ignite VS Spark
  16. 区块链之Hyperledger(超级账本)Fabric v1.0 的环境搭建(更新)
  17. web端代码提示
  18. 2017-12-14python全栈9期第一天第五节之变量、常量、注释
  19. BZOJ5120 [2017国家集训队测试]无限之环 费用流
  20. did not call through to super.onCreate()

热门文章

  1. INDIRECT函数实现动态图表的跨数据抓取
  2. amba H2平台用PWM控制LCD背光
  3. ubuntu安装Python3并与Python2自由切换
  4. PHP--关于上传文件大小的问题
  5. Gym 101194F Mr. Panda and Fantastic Beasts
  6. var、let、const
  7. 【EditPlus】参数设置
  8. flask学习笔记(二)
  9. 安装XCode7.1后,QT5.5出现的各种问题解决方案
  10. 递归与N皇后问题