获取年份、月份、当月第几天、当月总天数

本文介绍了一组用于处理日期的JavaScript函数,包括获取指定月份的总天数、当前日期是本月的第几天、当前年份及当前月份。这些函数能够帮助开发者快速进行日期相关的计算。
<script>
//获取当月总共天数函数
function getMonDay(mydate) {
	var d = new Date(mydate);
	//d.getMonth()+1月份索引从0开始,天数索引从1开始,第0天即代表最后一天
	var allDays = new Date(d.getFullYear(), (d.getMonth() + 1), 0).getDate();
	return allDays;
}

//获取当前是当月的第几天
function getNowDay(mydate) {
	var d = new Date(mydate);
	return d.getDate();
}

//获取当前年份
function getNowYear(mydate) {
	var mydate = new Date(mydate);
	return mydate.getFullYear();
}

//获取当前月份
function getNowMonth(mydate) {
	var mydate = new Date(mydate);
	return (mydate.getMonth() + 1);
}
</script>

 

根据年份月份计算当月天数,有多种不同编程语言实现的方法。 ### Java语言实现 可以使用`switch`语句结合闰年判断逻辑来实现。以下是示例代码: ```java import java.util.Scanner; public class Day { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入年份"); int year = scan.nextInt(); System.out.println("请输入月份"); int month = scan.nextInt(); switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println(31 + "天"); break; case 4: case 6: case 9: case 11: System.out.println(30 + "天"); break; case 2: if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) { System.out.println(29 + "天"); } else { System.out.println(28 + "天"); } break; } scan.close(); } } ``` 此代码通过`switch`语句先处理1、3、5、7、8、10、12(31天)和4、6、9、11(30天)的情况,对于2则根据闰年判断逻辑确定是28天还是29天[^1]。 ### Python语言实现 可以使用Python的`calendar`模块,它提供了很多与日历相关的功能,包括判断闰年和获取一个有多少天。示例代码如下: ```python import calendar year = int(input("请输入年份: ")) month = int(input("请输入月份: ")) days = calendar.monthrange(year, month)[1] print(f"{year}年{month}有{days}天") ``` 代码中使用`calendar.monthrange(year, month)`函数,它返回一个包含该第一天是星期几和该天数的元组,通过索引`[1]`即可获取天数[^2]。 ### Java另一种实现(使用`Calendar`类) 可以传入时间格式的字符串,按“-”把年份月份分割出来,代入`Calendar`类求出当月最大天数。示例代码如下: ```java import java.util.Calendar; public class DayCalculator { private int getDays(String time) { int days = 0; String yAndM[] = time.split("-"); Calendar a = Calendar.getInstance(); a.set(Calendar.YEAR, Integer.parseInt(yAndM[0])); a.set(Calendar.MONTH, Integer.parseInt(yAndM[1]) - 1); a.set(Calendar.DATE, 1); a.roll(Calendar.DATE, -1); days = a.get(Calendar.DATE); return days; } public static void main(String[] args) { DayCalculator calculator = new DayCalculator(); String time = "2024-02"; int days = calculator.getDays(time); System.out.println(time + " 当月有 " + days + " 天"); } } ``` 此代码将传入的时间字符串分割成年份月份,设置`Calendar`对象,通过`roll`方法将日期回滚一天,从而得到该的最后一天,即该天数[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LLL_LH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值