分别使用java和JS获取某月的第一天和最后一天

需求:获取本月的第一天和最后一天

分别使用Js和java代码实现,不能用笨法子,比如根据月份判断大小月,平闰年判断一个多少天,然后取出第一天和最后一天。

以下是实现方式,java代码:

Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

String firstDayOfMonth = sdf.format(calendar.getTime());

calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

String lastDayOfMonth = sdf.format(calendar.getTime());

这里使用Calendar的API实现,步骤如下:

1,获取一个Calendar实例,这个实例可以是当月也可以自己来设置

2,设置实例的项:DAY_OF_MONTH,表示按月表示的天,设置为最大值或者最小值。

3,使用getTime()获得java.util.Date类型的对象,然后进行格式化

note:这里Calendar的实例很重要,要获得某月的信息,就要让该实例的月份与结果对应,否则是别的月。

JS代码:没有找到现成的API,只能自己DIY了


// 获取当前月的第一天
<span style="white-space:pre">	</span>function getFirstDayOfMonth(date) {
<span style="white-space:pre">	</span>    var year = date.getFullYear();
<span style="white-space:pre">	</span>    var month = date.getMonth();


<span style="white-space:pre">	</span>    return new Date(year, month, 1);
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>//获取当前月的最后一天
<span style="white-space:pre">	</span>function getLastDayOfMonth(date) {
<span style="white-space:pre">	</span>    var current = date;
<span style="white-space:pre">	</span>    var currentMonth = current.getMonth();
<span style="white-space:pre">	</span>    var nextMonth = ++currentMonth;
<span style="white-space:pre">	</span>    var nextMonthDayOne = new Date(current.getFullYear(), nextMonth, 1);
<span style="white-space:pre">	</span>    var minusDate = 24*3600*1000;
<span style="white-space:pre">	</span>    return new Date(nextMonthDayOne.getTime() - minusDate);
<span style="white-space:pre">	</span>}
获取第一天相对容易,使用Date的构造函数,把传入的实例的年和月取出来分别传入,但还有一个日,第一天嘛当然取1就可以了。

但最后一天相对比较麻烦了,因为不知道该月有多少天,上一个办法就不能轻易奏效了。思路是:取下月第一天的昨天,那肯定是当月的最后一天了



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值