Javascript 计算日期之间的特定工作日数

Javascript 计算日期之间的特定工作日数,javascript,date,math,tasker,Javascript,Date,Math,Tasker,我试图在Tasker中计算两个日期之间的星期一、星期三和星期五的数量,因此我需要一个数学公式,可能使用秒形式的日期,即unix时间或javascript代码。我已经尝试过谷歌搜索和绞尽脑汁寻找任何方法来启动这个,但我迷路了,所以我还没有尝试过任何东西。我唯一能想到的就是把总天数除以7,但这显然帮不了我多少忙,特别是如果其中一天或两天都是周中。有人能给我指出一个更好的方向吗 假设总天数为n。那么一周中任何一天的数量最初都是n/7。现在取n=n%7。根据当前n的值,您可以轻松计算最终天数 例如: 假

我试图在Tasker中计算两个日期之间的星期一、星期三和星期五的数量,因此我需要一个数学公式,可能使用秒形式的日期,即unix时间或javascript代码。我已经尝试过谷歌搜索和绞尽脑汁寻找任何方法来启动这个,但我迷路了,所以我还没有尝试过任何东西。我唯一能想到的就是把总天数除以7,但这显然帮不了我多少忙,特别是如果其中一天或两天都是周中。有人能给我指出一个更好的方向吗

假设总天数为
n
。那么一周中任何一天的数量最初都是
n/7
。现在取
n=n%7
。根据当前
n
的值,您可以轻松计算最终天数

例如:

假设您的第一天是星期五,总天数是100天。所以,
n=100
。间隔内每个工作日的最小
100/7
14
<代码>100%7=2。所以最后的计数是

Friday -> 14+1 = 15
Saturday -> 14+1 = 15
Sunday -> 14
Monday -> 14
Tuesday -> 14
Wednesday -> 14
Thursday -> 14
如何:

在两个日期之间计算星期一、星期三和星期五的示例
[1,3,5]

countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,1)) // 1
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,2)) // 1
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,3)) // 2
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,4)) // 2
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,5)) // 3
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,6)) // 3
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,7)) // 3

请注意,
Date
的月份参数是基于0的,因此2014年9月1日是
Date(2014,8,1)

如何在JavaScript中计算两个日期之间的星期五数

function myfunction() {
    var frist = document.getElementById("dt_VacStart").value
    var answer = 0;
    var second = document.getElementById("dt_VacEnd").value;
    if (frist != null && second != null) {
        var startDate = new Date(frist);
        var endDate = new Date(second);
        var totalfriday = 0;
        for (var i = startDate; i <= endDate;) {
            if (i.getDay() ==5) {
                totalfriday++;
            }
            i.setTime(i.getTime() + 1000 * 60 * 60 * 24);
        }
        document.getElementById('<%=Friday.ClientID%>').value = totalfriday;
    } else {
        totalfriday = 0;
        document.getElementById('<%=Friday.ClientID%>').value = totalfriday;
    }
}
函数myfunction(){
var frist=document.getElementById(“dt_VacStart”).value
var-answer=0;
var second=document.getElementById(“dt_VacEnd”).value;
如果(第一个!=null和第二个!=null){
var startDate=新日期(第一);
var endDate=新日期(秒);
var totalfriday=0;

对于(var i=startDate;i@HeatherLeigh),如果我能提供您所期望的准确信息,我认为接受答案不会对您造成太大伤害,是吗?我需要它自动化(因此使用Tasker)因此,它可能需要两个日期,并输出它们之间的星期一、星期三和星期五的数量。这是非常有用的。是否有任何公式,我也可以给出一个日期数组,该数组将被排除在两个日期之间,或者不会被计算在两个日期之间?@Poonam在这种情况下,只需在该数组上循环,并计算两个日期之间的日期。如果您的情况比这更复杂,请作为单独的问题提交。
function myfunction() {
    var frist = document.getElementById("dt_VacStart").value
    var answer = 0;
    var second = document.getElementById("dt_VacEnd").value;
    if (frist != null && second != null) {
        var startDate = new Date(frist);
        var endDate = new Date(second);
        var totalfriday = 0;
        for (var i = startDate; i <= endDate;) {
            if (i.getDay() ==5) {
                totalfriday++;
            }
            i.setTime(i.getTime() + 1000 * 60 * 60 * 24);
        }
        document.getElementById('<%=Friday.ClientID%>').value = totalfriday;
    } else {
        totalfriday = 0;
        document.getElementById('<%=Friday.ClientID%>').value = totalfriday;
    }
}