Javascript 在Microsoft Dynamics CRM 2011中查找两个日期之间的工作日数

Javascript 在Microsoft Dynamics CRM 2011中查找两个日期之间的工作日数,javascript,date,dynamics-crm,dynamics-crm-2011,Javascript,Date,Dynamics Crm,Dynamics Crm 2011,总之,我尝试使用javascript根据开始和结束字段中的日期将一个整数设置为字段值。我甚至不确定使用crmjavascript查找一周中的哪一天的正确语法。这是到目前为止我的代码 function netbdays_change() { var startday = Xrm.Page.getAttribute("new_quotestart").getValue(); var endday = Xrm.Page.getAttribute("new_quoteend").get

总之,我尝试使用javascript根据开始和结束字段中的日期将一个整数设置为字段值。我甚至不确定使用crmjavascript查找一周中的哪一天的正确语法。这是到目前为止我的代码

function netbdays_change() {

    var startday = Xrm.Page.getAttribute("new_quotestart").getValue();
    var endday = Xrm.Page.getAttribute("new_quoteend").getValue();

    cycletime = endday - startday;

    Xrm.Page.getAttribute("new_setcycletime").setValue(cycletime);

}
试试这个:

function netbdays_change() {

    var startday = Xrm.Page.getAttribute("new_quotestart").getValue().getDay();
    var endday = Xrm.Page.getAttribute("new_quoteend").getValue().getDay();

    cycletime = endday - startday;

    Xrm.Page.getAttribute("new_setcycletime").setValue(cycletime);

}
getDay()返回一周中某一天的基于0的表示形式。

如果要计算两个日期之间的天数,请尝试以下操作:

function netbdays_change() {

    var startday = Xrm.Page.getAttribute("new_quotestart").getValue();
    var endday = Xrm.Page.getAttribute("new_quoteend").getValue();

    cycletime = Math.abs(endday - startday)

    Xrm.Page.getAttribute("new_setcycletime").setValue(cycletime / 86400000);

}

我终于想出了解决办法:随便使用每个人。:)

函数netbdays\u change(){
var startdays=Xrm.Page.getAttribute(“new_dateqassigned”).getValue();
var enddays=Xrm.Page.getAttribute(“new”u quotecomplete“).getValue();
var cycletime=Math.abs(enddays-startdays)/86400000;//第一部分现在可以工作了
startday=Xrm.Page.getAttribute(“new_dateqassigned”).getValue().getDay();
endday=Xrm.Page.getAttribute(“new”u quotecomplete“).getValue().getDay();
var x=startday;//一周中的哪一天
var y=0;//输出的工作日数
var z=0;//增加到总天数
而(x这是我的代码:

function GetBusinessDays(startDate, endDate)
{
    if (startDate != null && endDate != null)
    {
        var cycletime = (Math.abs(endDate - startDate) / 86400000) + 1;
        var startday = startDate.getDay();
        var x = startday; // day of the week
        var y = 0; // number of business days for output
        var z = 0; // augment up to the total number of days

        while (z < cycletime) {
            if (x > 0 && x < 6) 
            {
                y++;
            }
            x++;
            z++;
            if (x > 6)
            {
                x = 0;
            }
        }

        return y;
    }
    return null;
}
函数GetBusinessDays(开始日期、结束日期)
{
if(startDate!=null&&endDate!=null)
{
var cycletime=(Math.abs(endDate-startDate)/86400000)+1;
var startday=startDate.getDay();
var x=startday;//一周中的哪一天
var y=0;//输出的工作日数
var z=0;//增加到总天数
while(z0&&x<6)
{
y++;
}
x++;
z++;
如果(x>6)
{
x=0;
}
}
返回y;
}
返回null;
}

这很适合告诉我一周中的哪一天。现在我只需要知道两个日期之间有多少天。您可以在CRM JS中添加或减去天数吗?谢谢您的帮助。我修改了我的答案,以反映计算两个日期之间的天数。计算仍然无法告诉我如何计算两个日期之间间隔了很多天。我得到了1的输出。有什么想法吗?我感谢您的帮助。您输入的是什么日期,您希望得到什么输出?可能重复:值得注意的是,这没有考虑到银行假日或其他非工作日,也没有考虑到那些周末是工作日的国家。
function GetBusinessDays(startDate, endDate)
{
    if (startDate != null && endDate != null)
    {
        var cycletime = (Math.abs(endDate - startDate) / 86400000) + 1;
        var startday = startDate.getDay();
        var x = startday; // day of the week
        var y = 0; // number of business days for output
        var z = 0; // augment up to the total number of days

        while (z < cycletime) {
            if (x > 0 && x < 6) 
            {
                y++;
            }
            x++;
            z++;
            if (x > 6)
            {
                x = 0;
            }
        }

        return y;
    }
    return null;
}