如何创建查找当月营业日数的功能?你能不用Jquery在简单的javascript中编码。
function daysInMonth(iMonth, iYear)
{
return 32 - new Date(iYear, iMonth, 32).getDate();
}
function Detail() {
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth();
var dim = daysInMonth(month, year);
alert(dim);
}
function Businessday(iMonth, iYear)
{
// enter code here
}
function isBusinessDay(){
var d=new Date();
var day = d.getDay();
switch(day) {
case 0:
document.write("Today is Weekend");
break;
case 6:
document.write("Today is Weekend");
break;
default:
document.write("Today is business day");
}
}
提前致谢。
答案 0 :(得分:14)
好的,让我们一次解决这个问题。
JavaScript中的Date
对象有一个方法getDay
。这将在星期日返回0,星期一返回1,星期二返回2,星期六返回6。鉴于此,我们可以得出结论,我们希望不计算getDay
返回0或6的天数。
您已经有一个函数可以返回一个月内的天数,所以假设我们可以遍历所有日期并检查getDay的结果。 daysInMonth
假设月份为零;所以0 = 1月。
我鼓励你从这里尝试自己解决这个问题;否则请继续阅读。
让我们从isWeekday
函数开始。我们需要年,月和日:
function isWeekday(year, month, day) {
var day = new Date(year, month, day).getDay();
return day !=0 && day !=6;
}
我们完全像上面谈到的那样:我们构建一个日期,并使用getDay
来确定它是否是一天。
现在我们需要循环这个月的所有日子:
function getWeekdaysInMonth(month, year) {
var days = daysInMonth(month, year);
var weekdays = 0;
for(var i=0; i< days; i++) {
if (isWeekday(year, month, i+1)) weekdays++;
}
return weekdays;
}
我们循环了一个月的所有日子。我们在检查isWeekday
时添加1,因为与月份不同,这一天是1。如果是,我们递增weekdays
,然后返回。
所以我们可以像这样使用getWeekdaysInMonth
:
var weekdays = getWeekdayInMonth(9, 2011); //9 = October.
这将导致21。
答案 1 :(得分:1)
带链接的箭头功能样式:
(
(year, month) =>
new Array(32 - new Date(year, month, 32).getDate())
.fill(1)
.filter(
(id, index) =>
[0, 6].indexOf(
new Date(year, month, index + 1).getDay()) === -1
).length
)(2017, 5)