`
leeqq
  • 浏览: 138607 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

获取每个月有多少天

    博客分类:
  • web
阅读更多

最近在项目中偶然发现一段别人写的代码,获取一个中有多少天,以前写这个的时候,基本是定义一个数组

[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

 

然后用月份做下标去取得到 days, 然后再执行 days += days < 30  && isLeapYear(year) ? 1 : 0; 以此来修正闰年2月份的天数。其中isLeapYear是用判断是否是闰年的,可用下面的方法判断

year % 4 === 0 && year % 100 !== 0 || year % 400 === 0

 

但是在项目中看到的是,如果月份是8月或以上,给月份自加1,这样就可以用  月份%2,根据余数来判定是30天还是31天。省去定义数组的过程。想法不错,但是还是要判断月份是否大于等于8月份。不太好。

 

于是乎有了下面的方法

function isLeapYear(year) {
    return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
}

function daysInMonth(month, year) {
    if (month === 2) {
        return isLeapYear(year) ? 29 : 28;
    }
    return Math.ceil(Math.abs(month - 7.5)) % 2 + 30;
}

 

这里的月份是从1-12,如果月份是从0开始到11。可在方法里面做对应的修正。这样是不是更简单点,只是看着没有上面的直观,更没有第一个方法直观

分享到:
评论

相关推荐

    python获取指定日期范围内的每一天,每个月,每季度的方法

    在Python中获取指定日期范围内的每一天、每个月和每季度的方法,涉及到使用Python标准库中的datetime、timedelta以及calendar模块。具体来说,可以分为以下几点进行详细说明: 1. 获取指定日期范围内的每一天 为了...

    收集输入年每个月的第一天与最后一天sql

    所写程序需要生成一个每月第一天与最后一天日期。归档!

    java中计算某个月的工作日总共几天

    在Java中,要计算一个月内有多少个工作日(通常指周一至周五),以及具体哪些日子是工作日,可以通过多种方法实现。这里将介绍一种较为通用的方法:利用`java.util.Calendar`类来计算指定月份内的工作日。 #### 一...

    Delphi获取某月份的最后一天是多少..rar

    例如,如果你想知道2022年2月有多少天,可以这样写: ```delphi var LastDay: Integer; begin LastDay := DateUtils.MonthDays(2022, 2); Writeln('二月有', LastDay, '天'); end; ``` 但是,如果你有一个特定...

    C#获取上个月第一天和最后一天日期的方法

    由于每个月的第一天总是1号,所以直接拼接即可: ```csharp string beforeMouthOneDay = beforeYear + "年" + beforeMouth + "月" + 1 + "日"; ``` 获取上个月最后一天的日期稍微复杂些,因为不同月份的天数不同。...

    C++根据输入年份计算每月的天数

    这段C++代码旨在实现一个功能,即根据用户输入的年份计算并输出该年份每个月的天数。在实现这个功能的过程中,涉及到的关键知识点包括闰年的判断、输入输出操作、数组以及循环控制。 首先,我们要了解闰年的计算...

    判断某月的最后一天 vb 一个函数

    例如,财务软件中可能需要根据月份计算账期结束日期,日历应用程序可能需要显示每个月的具体天数,或者在数据分析中,需要对时间序列数据进行按月分组统计等。掌握这种基础的日期处理技巧,对于提高程序的灵活性和...

    C#每月第一天和最后一天

    在C#编程语言中,获取每个月的第一天和最后一天是一个非常实用的功能,尤其是在处理与日期相关的数据时。本文将详细解析如何使用C#代码来实现这一功能,并对给定的示例代码进行深入分析。 ### C# 获取每月的第一天 ...

    C语言学习 输出每个月的天数

    在C语言中,输出每个月的天数涉及到日期和时间处理,这是编程中常见的任务之一。在C语言标准库中,可以使用`&lt;stdio.h&gt;`、`&lt;time.h&gt;`和`&lt;stdlib.h&gt;`等头文件来实现这个功能。下面将详细解释如何通过C语言程序来实现这...

    获取图片每个像素点的rgb值源码

    在图像处理领域,获取图片每个像素点的RGB值是一项基础且重要的操作。RGB(Red, Green, Blue)是颜色模型的一种,它通过红、绿、蓝三种颜色的不同强度组合来表示各种颜色。以下是一个关于如何获取图片每个像素点RGB...

    java 获取2个时间中的每一天

    java 获取2个时间中的每一天

    利用python获取某年中每个月的第一天和最后一天

    在Python编程中,有时我们需要获取特定年份中每个月的第一天和最后一天的日期,这在数据分析、日历应用或时间序列处理等场景中非常常见。本文将介绍两种方法来实现这个功能,帮助开发者更好地理解和应用。 ### 方法...

    易语言取上个月第一天和最后一天

    同理,获取上个月的最后一天则需要找到上个月的第一天后再加一天,因为每个月的最后一天是下个月的第一天的前一天。 在易语言中,我们可以使用以下步骤来实现: 1. 获取当前日期:使用内置函数“取日期”(GetDate...

    java获取每月的最后一天实现方法

    Java 获取每月的最后一天实现方法 Java 获取每月的最后一天实现方法是指在 Java 编程语言中获取当前月份的最后一天的日期。下面是实现该功能的详细方法。 首先,我们需要使用 Java 的 Calendar 类来实现该功能。...

    自动获取全年每个月的月初日常到月末日期.xlsx

    自动获取全年每个月的月初日常到月末日期.xlsx

    SQL获取当前月的第一天和最后一天和当前月一共几天

    在第二个方法中,同样声明了一个`@FistDayOfThisMonth`变量,通过`@NOW - DAY(@NOW) + 1`来获取当前月的第一天,这个表达式将当前日期减去其日数,然后加1,就得到了每月的第一天。 ```sql DECLARE @...

    SQL SERVER 获取年、季、月、周、日开始时间和结束时间

    time: 返回的时间点,如果时间点为8点,返回的结束时间为第二天的8点,例如获取8月最后一天的结束时间,以8点计,则返回值为 2022-09-01 07:59:59.997 select dbo.GetDateStartFirstAndLast('-q','s','2022-08-03',...

    超Q每个月有多少条短信提醒-.docx

    2. 黄金等级2级用户每月有25条免费短信提醒。 3. 黄金等级3级用户每月可获得50条免费短信提醒。 4. 黄金等级4级用户每月可以使用100条短信提醒。 5. 黄金等级5级用户每月的短信提醒额度为150条。 6. 黄金等级6级用户...

    Qt载入图片界面并获得每个像素点坐标

    综上所述,实现“Qt载入图片界面并获得每个像素点坐标”的功能,需要掌握Qt的图像处理(如`QImage`和`QPixmap`),事件处理(`mouseMoveEvent()`),以及颜色和像素操作等知识。通过这些技术,不仅可以创建一个基础...

    c# datetimepicker 每次加载的时候自动跳到每月的第一天

    要实现“每次加载自动跳到每月的第一天”,我们需要在窗体(`Form`)加载事件(`Load`事件)中设置`DateTimePicker`的`Value`属性。下面是一段示例代码: ```csharp private void Form1_Load(object sender, ...

Global site tag (gtag.js) - Google Analytics