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

相关文章

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa