html判断每月天数,面试题:JS 获取某月的天数

2023-12-17 17:59

本文主要是介绍html判断每月天数,面试题:JS 获取某月的天数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

获取某个月的天数,这个题一般都是在学 switch(){} 一章的案例。

我们一直解题的方案是根据一个顺口溜:一三五七八十腊,31天永不差,四六九十一,每月30天,惟有二月二十八,闰年要把日加一。(我搜的,具体怎么背我忘了)

这里面还有个闰年的计算规则:四年一闰,百年不闰,四百年再闰。可以被4整除,但是不能被100整除,除非可以被400整除。

25f4a998d3e3ff6ff316889f2e3126d0.png

是不是被上面的魔性概念征服了?接来下我们来实现一下

面试题:JS 获取某月的天数

先上测试用例function getMonthCountDay(year, month){

// year 为年份,month 为月份

}

[[2000,2],[2000,1],[2000,3],[2000,4],[2100,2],[2100,1],[2100,3],[2100,4],[2104,2],[2104,1],[2104,3],[2104,4],[2105,2],[2105,1],[2105,3],[2105,4],].map(v=>`${v} => ${getMonthCountDay.apply(null,v)}天`)

基础版本

根据我们的顺口溜我们来写一下function getMonthCountDay (year, month) {

switch (month){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

return 31

case 4:

case 6:

case 9:

case 11:

return 30

case 2:

return year%400==0?(29):(year%4!=0||year%100==0?28:29)

}

}

很好写完了,除了代码看上去多了点,没别的毛病。

测试截图

870c994ff39434af599212abbdef8dfa.png

借助 Date API 处理日期溢出特性(进位)

接下来就开始骚了。function getMonthCountDay (year, month) {

return 32 - new Date(year, month-1, 32).getDate()

}

是不是想不到,这种方法写的一下就很少了。

16772ef1125e3da0ca2312060a8f24a5.png

测试截图

763d15604e3949a9fc1aab882e2c9b5b.png

方案原理

js 中 Date 在处理时间的时候会做进位退位操作。

36685e90064650736e2cc046a749ae4c.png

借助 Date API 处理日期溢出特性(退位方案)

刚才是用的进位,然后减去多余的。现在我们改用退位function getMonthCountDay (year, month) {

return new Date(year, month, 0).getDate()

}

8b05cfc8b49269bd42fd516c23dcd34a.png

测试截图

b9dbb6f2350a180ecc92adf00488f573.png

方案原理

js 中 Date 在处理时间的时候会做进位退位操作。

6bb7586a2a71ef1bfa44cc1b78aa882e.png

利用这个特性还可以做什么?

7706c80bfb7ec62b45e3ddc329aa38b5.png

获取月初是周几

81f543e107199c3921b0c40c7503b85a.png

获取月末是周几

015ab8eb018f100f6961d78a5313a72c.png

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[面试题:JS 获取某月的天数]http://www.zyiz.net/tech/detail-149509.html

这篇关于html判断每月天数,面试题:JS 获取某月的天数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/505309

相关文章

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

JS 实现复制到剪贴板的几种方式小结

《JS实现复制到剪贴板的几种方式小结》本文主要介绍了JS实现复制到剪贴板的几种方式小结,包括ClipboardAPI和document.execCommand这两种方法,具有一定的参考价值,感兴趣的... 目录一、Clipboard API相关属性方法二、document.execCommand优点:缺点:

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo