分別使用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就可以了。

但最後一天相對比較麻煩了,因爲不知道該月有多少天,上一個辦法就不能輕易奏效了。思路是:取下月第一天的昨天,那肯定是當月的最後一天了



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章