效果图:

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()  获取每个月的最后一天是几号

js中的小案例(一)的更多相关文章

  1. js中OOP小指南

    js中OOP小指南 在指南中,我将尝试解析以面向对象规范聚焦的es6的新特性. 首先, 什么是设计模式 范例是某个事务的例子或模型,在某种情况下,按照一种模式创建了计算机程序. 什么是面向对象 显然你 ...

  2. js中的经典案例--简易万年历

    js中的经典案例--简易万年历 html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...

  3. (网页)JS中的小技巧,但十分的实用!

    转自CSDN: 1.document.write(”"); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4. ...

  4. JS高级---沙箱小案例

    沙箱小案例 substr截取, 从指定的字段开始截取 (function () { var str="小白喜欢小黑"; str=str.substr(2); console.log ...

  5. JS高级---闭包小案例

    闭包小案例 普通的函数 //普通的函数 function f1() { var num = 10; num++; return num; } console.log(f1()); //11 conso ...

  6. Hibernate中事务小案例

    理论知识: 什么是事务? 指作为单个逻辑工作单位执行的一系列操作,要么完全的执行,要么完全不执行.事务处理可以确保非事务性单元内的所有操作都完全完成,否则永久不会更新面向数据的资源.通过将一组操作组合 ...

  7. 总结下常用js中的小语法和技巧

    1,数组对象遍历 对一个级数对象进行遍历,取出每个值 var arr={ "result":[ {"time":"2018-10-24 12:12:1 ...

  8. Angular.js路由 简单小案例

    代码案例: <html> <head> <meta charset="utf-8"> <title>AngularJS 路由实例&l ...

  9. 学习JS中的小问题

    1.如果载入的2个js文件中有重名函数,那么调用的时候怎么分别调? 第二个文件载入无效. 2.checkbox jQuery对象的checked属性在选中时为checked,否则为undefined: ...

随机推荐

  1. 算法笔记刷题3(codeup 5901)

    今天刷题的速度依旧很慢(小乌龟挥爪.jpg) 我觉得codeup5901中回文串的处理很妙,如果是我自己写的话可能会把数组直接倒过来和原来对比.按照对称规律进行比对的话,工作量可以减少一半. #inc ...

  2. phpspider框架的使用

    手册:https://doc.phpspider.org/configs-members.html 参考:https://www.jianshu.com/p/01052508ea7c 不多说,代码贴上 ...

  3. 20199308《Linux内核原理与分析》第十二周作业

    一.实验简介 竞态条件是指多个线程同时访问或者操作同一块数据,运行的结果依赖于不同线程访问数据的顺序.如果一个拥有root权限的程序存在竞态条件漏洞的话,攻击者可以通过运行一个平行线程与漏洞程序竞争, ...

  4. 2019-2020-1 20199326《Linux内核原理与分析》第六周作业

    本周学习了庖丁解牛Linux内核分析第五章:系统调用的三层机制(下),是上一章的延续 实验内容:使用gdb跟踪分析一个系统调用内核函数 上周实验我选择的getpid这个系统系统调用,这次准备使用gdb ...

  5. 部署企业LNMP架构搭建bbs

    部署企业LNMP架构 1===============部署Nginx 2===============安装及部署Mysql数据库 3===============安装PHP解析环境 4======== ...

  6. Struts2漏洞利用

    Struts漏洞合集 Struts-S2-013漏洞利用 受影响版本 Struts 2.0.0 - Struts 2.3.14.1 漏洞利用 任意命令执行POC: ${(#_memberAccess[ ...

  7. BeanDefinition源码解析

    我们知道BeanDefintion定义了Bean在IoC容器内的基本数据结构.在学习IoC之前先了解BeanDefition对我们理解IoC容器是有帮助的. 首先BeanDefinition是一个接口 ...

  8. 信息竞赛进阶指南--Tire树

    // 假设字符串由小写字母构成 int trie[SIZE][26], tot = 1; // Trie的插入 void insert(char* str) { int len = strlen(st ...

  9. ln命令:软链接与硬链接的区别与应用

    ln命令:软链接与硬链接的区别与应用 摘要 Linux系统中,链接是一个十分常见且实用的文件处理命令,它分为软链接和硬链接两种类型.软链接类似于Windows中的快捷方式,硬链接又有着与原文件保持同步 ...

  10. golang教程汇总

    A Tour of Go Go编程基础 Go 语言圣经 中文版