87,917
社区成员
发帖
与我相关
我的任务
分享
var Holiday = ["2013-01-01", "2013-02-08", "2013-02-11", "2013-02-12", "2013-02-13", "2013-02-14", "2013-04-04", "2013-05-01", "2013-06-12", "2013-09-19", "2013-10-01", "2013-10-02", "2013-10-03"];
var workd = ["2013-02-02", "2013-02-03"];
function workdays(d1, d2) {
function toD(d) { return new Date(d.replace(/-/g, '/')) } //转成Date对象
function ds(d) { return d.getTime() / 864E5 >> 0 } //天数
var day, d, d1 = toD(d1), d2 = toD(d2), d0 = d1, works = 0, o = {}, i = 0, L, p = {};
for (i = 0, L = Holiday.length; i < L; i++) { o[ds(toD(Holiday[i]))] = 1; };
for (j = 0, W = workd.length; j < W; j++){ p[ds(toD(workd[j]))] = 1; };
if (d1 > d2) { d = d1; d1 = d2; d2 = d } //确保d1<d2
day = d1.getDay(); //d1星期
d1 = ds(d1), d2 = ds(d2), i = d2 - d1 + 1;
while (i--) if ((day + i) % 7 % 6 && !o[d1 + i]) works++; //取星期天,六,加Holiday里的
while (j--) {
if (p[d1 + j]) works++;
}
return works;
}
<script type="text/javascript">
var Holiday = ["2013-01-01", "2013-01-02", "2013-01-03","2013-05-01","2013-09-01", "2013-10-01", "2013-10-02", "2013-10-03", "2013-10-04"];
var ftdt="2013-10-01",todt="2013-10-07";
alert(get_fun(ftdt,todt));
function get_fun(bd,ed){
var arr=[];
function toD(d) { return new Date(d.replace(/-/g, '/')) }
var e=toD(ed);
function tml(t){
var n=new Date();
n.setTime(toD(t).getTime()+864E5);
return n.getFullYear()+"-"+("0"+(n.getMonth()+1)).slice(-2)+"-"+("0"+n.getDate()).slice(-2);
}
while (toD(bd)<=e){
var w=toD(bd).getDay();
if(w!=0&&w!=6&&Holiday.indexOf(bd)==-1)arr[arr.length]=bd;
bd=tml(bd);
}
//alert(arr);//输出符合条件的日期集合
return arr.length;//得到日期天数
}
</script>
已经测试通过你上面提到的几个日期,其他日期你测试一下。
<script type="text/javascript">
function CheckDate(source) {
var row_id = source.id.substr(0, source.id.lastIndexOf('_') + 1);
var textbox1 = document.getElementById(row_id + 'frdt');
var textbox2 = document.getElementById(row_id + 'todt');
var a = textbox1.value + " 23:59:59";
a = a.replace("-", "/");
var dateA = new Date(a);
var dateNow = new Date();
if (Date.parse(dateNow) - Date.parse(dateA) > 0) {
alert("开始日期错误");
textbox1.focus();
return false;
}
if (textbox2.value != "") {
if (textbox1.value > textbox2.value) {
alert("结束日期要比开始日期大");
return false;
}
}
var label = document.getElementById(row_id + 'num');
label.value = workdays(textbox1.value, textbox2.value)
}
function workdays(d1, d2) {
function toD(d) { return new Date(d.replace(/-/g, '/')) }
function ds(d) { return d.getTime() / 864E5 >> 0 }
var day, d, d1 = toD(d1), d2 = toD(d2), works = 0;
if (d1 > d2) { d = d1; d1 = d2; d2 = d }
day = d1.getDay();
d1 = ds(d1), d2 = ds(d2);
while (d1 <= d2) if ((day + d2 - d1++) % 7 % 6) works++;
return works;
}
</script>
如果用之前没有判断节假日的JS,就不会报错
下面是后台对应的C#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Data;
public partial class write : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable tb = new DataTable("anu");
DataColumn dc1 = new DataColumn("id", Type.GetType("System.String"));
DataColumn dc2 = new DataColumn("frdt", Type.GetType("System.String"));
DataColumn dc3 = new DataColumn("todt", Type.GetType("System.String"));
DataColumn dc4 = new DataColumn("num", Type.GetType("System.String"));
tb.Columns.Add(dc1);
tb.Columns.Add(dc2);
tb.Columns.Add(dc3);
tb.Columns.Add(dc4);
DataRow dr = tb.NewRow();
dr["id"] = "1";
dr["frdt"] = "";
dr["todt"] = "";
dr["num"] = "0";
tb.Rows.Add(dr);
ViewState["tb"] = tb;
GridView1.DataSource = tb;
GridView1.DataBind();
TextBox txb;
TextBox txb1;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
txb = (TextBox)GridView1.Rows[i].FindControl("frdt");
txb.Attributes.Add("onclick", "WdatePicker({el:$dp.$('txb')})");
txb1 = (TextBox)GridView1.Rows[i].FindControl("todt");
txb1.Attributes.Add("onclick", "WdatePicker({el:$dp.$('txb1')})");
}
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
TextBox txb;
TextBox txb1;
TextBox shownum;
DataTable tb = new DataTable("anu");
DataColumn dc1 = new DataColumn("id", Type.GetType("System.String"));
DataColumn dc2 = new DataColumn("frdt", Type.GetType("System.String"));
DataColumn dc3= new DataColumn("todt", Type.GetType("System.String"));
DataColumn dc4 = new DataColumn("num", Type.GetType("System.String"));
tb.Columns.Add(dc1);
tb.Columns.Add(dc2);
tb.Columns.Add(dc3);
tb.Columns.Add(dc4);
int j = 0;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
DataRow dr = tb.NewRow();
txb = (TextBox)GridView1.Rows[i].FindControl("frdt");
txb1 = (TextBox)GridView1.Rows[i].FindControl("todt");
shownum = (TextBox)GridView1.Rows[i].FindControl("num");
Label1.Text = shownum.Text;
dr["id"] = i+1;
dr["frdt"] = txb.Text;
dr["todt"] = txb1.Text;
dr["num"] = shownum.Text;
tb.Rows.Add(dr);
j++;
}
DataRow dr1 = tb.NewRow();
dr1["id"] = j+1;
dr1["frdt"] = "";
dr1["todt"] = "";
dr1["num"] = "0";
tb.Rows.Add(dr1);
GridView1.DataSource = tb;
GridView1.DataBind();
for (int i = 0; i < GridView1.Rows.Count; i++)
{
txb = (TextBox)GridView1.Rows[i].FindControl("frdt");
txb.Attributes.Add("onclick", "WdatePicker({el:$dp.$('txb')})");
txb1 = (TextBox)GridView1.Rows[i].FindControl("todt");
txb1.Attributes.Add("onclick", "WdatePicker({el:$dp.$('txb1')})");
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
GridView1.SelectedRowStyle.BackColor = Color.FromName("#f7e7c0");
GridViewRow GridR = GridView1.SelectedRow;
string s = ((Label)GridR.FindControl("lblID")).Text;
hfID.Value = s;//将选中行的主键放入隐藏控件中
}
protected void btnDelete_Click(object sender, EventArgs e)
{ string id = hfID.Value;
//根据id获得这条记录,然后删除
TextBox txb;
TextBox txb1;
TextBox numshow;
DataTable tb = new DataTable("anu");
DataColumn dc1 = new DataColumn("id", Type.GetType("System.String"));
DataColumn dc2 = new DataColumn("frdt", Type.GetType("System.String"));
DataColumn dc3 = new DataColumn("todt", Type.GetType("System.String"));
DataColumn dc4 = new DataColumn("num", Type.GetType("System.String"));
tb.Columns.Add(dc1);
tb.Columns.Add(dc2);
tb.Columns.Add(dc3);
tb.Columns.Add(dc4);
Label lbid;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
txb = (TextBox)GridView1.Rows[i].FindControl("frdt");
txb1 = (TextBox)GridView1.Rows[i].FindControl("todt");
numshow = (TextBox)GridView1.Rows[i].FindControl("num");
lbid = (Label)GridView1.Rows[i].FindControl("lblID");
if (id != lbid.Text)
{
DataRow dr = tb.NewRow();
dr["id"] = lbid.Text;
dr["frdt"] = txb.Text;
dr["todt"] = txb1.Text;
dr["num"] = numshow.Text;
tb.Rows.Add(dr);
}
}
GridView1.DataSource = tb;
GridView1.DataBind();
for (int i = 0; i < GridView1.Rows.Count; i++)
{
txb = (TextBox)GridView1.Rows[i].FindControl("frdt");
txb.Attributes.Add("onclick", "WdatePicker({el:$dp.$('txb')})");
txb1 = (TextBox)GridView1.Rows[i].FindControl("todt");
txb1.Attributes.Add("onclick", "WdatePicker({el:$dp.$('txb1')})");
}
}
protected void GridView1_RowCreate(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onClick", "javascript:__doPostBack('" + GridView1.ClientID.Replace("_", "$") + "','Select$" + e.Row.RowIndex + "');");
e.Row.Attributes.Add("style", "cursor:hand;");
}
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
无标题页
</title>
<script type="text/javascript" src="My97DatePicker/calendar.js" ></script>
<script type="text/javascript" src="My97DatePicker/config.js" ></script>
<script type="text/javascript" src="My97DatePicker/WdatePicker.js" ></script>
<script type="text/javascript" src="js/jquery.js"></script>
<style type="text/css">
.disno{ display:none;}
body{font-size:12px;
}
.tx{ border:none; text-align:center;font-family:黑体; font-size:20px; width:115px; }
.tx1{ border:none; width: 128px;text-align:center;font-family:黑体; font-size:18px; }
.inp{ border:1px solid #cccccc; width:100px;}
</style>
<script type="text/javascript">
function CheckDate(source) {
var row_id = source.id.substr(0, source.id.lastIndexOf('_') + 1);
var textbox1 = document.getElementById(row_id + 'frdt');
var textbox2 = document.getElementById(row_id + 'todt');
var a = textbox1.value + " 23:59:59";
a = a.replace("-", "/");
var dateA = new Date(a);
var dateNow = new Date();
if (Date.parse(dateNow) - Date.parse(dateA) > 0) {
alert("开始日期错误");
textbox1.focus();
return false;
}
if (textbox2.value != "") {
if (textbox1.value > textbox2.value) {
alert("结束日期要比开始日期大");
return false;
}
}
var label = document.getElementById(row_id + 'num');
label.value = workdays(textbox1.value, textbox2.value)
}
var Holiday = ["2013-01-01", "2013-01-02", "2013-01-03", "2013-05-01", "2013-09-01", "2013-10-01", "2013-10-02", "2013-10-03", "2013-10-04"];
function workdays(d1, d2) {
function toD(d) { return new Date(d.replace(/-/g, '/')) } //转成Date对象
function ds(d) { return d.getTime() / 864E5 >> 0 } //天数
var day, d, d1 = toD(d1), d2 = toD(d2), d0 = d1, works = 0, o = {}, i = 0, L;
for (i = 0, L = Holiday.length; i < L; i++) { o[ds(toD(Holiday[i]))] = 1; };
if (d1 > d2) { d = d1; d1 = d2; d2 = d } //确保d1<d2
day = d1.getDay(); //d1星期
d1 = ds(d1), d2 = ds(d2), i = d2 - d1 + 1;
while (i--) if ((day + i) % 7 % 6 && !o[d1 + i]) works++; //取星期天,六,加Holiday里的
return works;
}
</script>
</head>
<body>
<form name="form1" method="post" action="write.aspx" id="form1">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTY0MDA3MzU0NA8WAh4CdGIyigwAAQAAAP////8BAAAAAAAAAAwCAAAATlN5c3RlbS5EYXRhLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUBAAAAFVN5c3RlbS5EYXRhLkRhdGFUYWJsZQMAAAAZRGF0YVRhYmxlLlJlbW90aW5nVmVyc2lvbglYbWxTY2hlbWELWG1sRGlmZkdyYW0DAQEOU3lzdGVtLlZlcnNpb24CAAAACQMAAAAGBAAAAIsHPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTE2Ij8+DQo8eHM6c2NoZW1hIHhtbG5zPSIiIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6bXNkYXRhPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1tc2RhdGEiPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJhbnUiPg0KICAgIDx4czpjb21wbGV4VHlwZT4NCiAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iaWQiIHR5cGU9InhzOnN0cmluZyIgbXNkYXRhOnRhcmdldE5hbWVzcGFjZT0iIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9ImZyZHQiIHR5cGU9InhzOnN0cmluZyIgbXNkYXRhOnRhcmdldE5hbWVzcGFjZT0iIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9InRvZHQiIHR5cGU9InhzOnN0cmluZyIgbXNkYXRhOnRhcmdldE5hbWVzcGFjZT0iIiBtaW5PY2N1cnM9IjAiIC8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9Im51bSIgdHlwZT0ieHM6c3RyaW5nIiBtc2RhdGE6dGFyZ2V0TmFtZXNwYWNlPSIiIG1pbk9jY3Vycz0iMCIgLz4NCiAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgPC94czplbGVtZW50Pg0KICA8eHM6ZWxlbWVudCBuYW1lPSJ0bXBEYXRhU2V0IiBtc2RhdGE6SXNEYXRhU2V0PSJ0cnVlIiBtc2RhdGE6TWFpbkRhdGFUYWJsZT0iYW51IiBtc2RhdGE6VXNlQ3VycmVudExvY2FsZT0idHJ1ZSI+DQogICAgPHhzOmNvbXBsZXhUeXBlPg0KICAgICAgPHhzOmNob2ljZSBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIiAvPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogIDwveHM6ZWxlbWVudD4NCjwveHM6c2NoZW1hPgYFAAAA0gI8ZGlmZmdyOmRpZmZncmFtIHhtbG5zOm1zZGF0YT0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp4bWwtbXNkYXRhIiB4bWxuczpkaWZmZ3I9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLWRpZmZncmFtLXYxIj4NCiAgPHRtcERhdGFTZXQ+DQogICAgPGFudSBkaWZmZ3I6aWQ9ImFudTEiIG1zZGF0YTpyb3dPcmRlcj0iMCIgZGlmZmdyOmhhc0NoYW5nZXM9Imluc2VydGVkIj4NCiAgICAgIDxpZD4xPC9pZD4NCiAgICAgIDxmcmR0IC8+DQogICAgICA8dG9kdCAvPg0KICAgICAgPG51bT4wPC9udW0+DQogICAgPC9hbnU+DQogIDwvdG1wRGF0YVNldD4NCjwvZGlmZmdyOmRpZmZncmFtPgQDAAAADlN5c3RlbS5WZXJzaW9uBAAAAAZfTWFqb3IGX01pbm9yBl9CdWlsZAlfUmV2aXNpb24AAAAACAgICAIAAAAAAAAA//////////8LFgICAw9kFgICAw9kFgJmD2QWAgIJDzwrABECAA8WBB4LXyFEYXRhQm91bmRnHgtfIUl0ZW1Db3VudAIBZAEQFgAWABYAFgJmD2QWBAIBD2QWBmYPZBYCAgEPDxYCHgRUZXh0BQExZGQCAQ9kFgICAQ8PZBYCHgdvbmNsaWNrBR5XZGF0ZVBpY2tlcih7ZWw6JGRwLiQoJ3R4YicpfSlkAgIPZBYCAgEPD2QWAh8EBR9XZGF0ZVBpY2tlcih7ZWw6JGRwLiQoJ3R4YjEnKX0pZAICDw8WAh4HVmlzaWJsZWhkZBgCBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAgUMSW1hZ2VCdXR0b24xBQxJbWFnZUJ1dHRvbjIFCUdyaWRWaWV3MQ88KwAMAQgCAWQn7tN6hq7HK9fAfvXQwAH7h9ZK4RKWUnTn1KaDp67J1Q==" />
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<script src="/annual/WebResource.axd?d=J6cOxVqf_YZQOXnh_wyWi9ruyb2AZzXYMVck9-6jd-CmEGYqWLBxiLe8PupQ4OB520a-djoahUMxXwlQkPv6Sb3DmG287C2L4MsBoAQWus41&t=634778696730156250" type="text/javascript"></script>
<script src="/annual/ScriptResource.axd?d=IBP3T_emZxg5cFwa2tjrLq2w8UaoWf235Bf-FJ1kdGYbiop5FkK-o8qxaMZZi3J2lPlt8i-lACuuiy7I8FCA0Mc4W0mZolvO_PIIPik90Iat4B2mC5jR1TLvTNAO1zL7Kr2-jjjBoWHMzXKZo-RgP30nmAyCX4etIY_UQTC7FnHC1jn3w_M9lWM-A1jIersg0&t=ffffffff940d030f" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax 客户端框架未能加载。');
//]]>
</script>
<script src="/annual/ScriptResource.axd?d=ZwyNDQe3fgCBUD2HsrcozcM-IUZ7F40F5gklVlH2reoNUzAjrrF90BNEXHuAF8bZg9mP1pbps2evq64CmFCGIQwPp7TPK7O7mqCY4ndUtJnCd6INuEQ7AxwUpJfiW-vFlYuN_Uiwy9KnnJlTIh5FH8eVhT6fkEkL0iAr458CvpLkbYNV9k3lmbs7UXncOM3D0&t=ffffffff940d030f" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', 'form1', ['tUpdatePanel1',''], [], [], 90, '');
//]]>
</script>
<div id="UpdatePanel1">
<input type="image" name="ImageButton1" id="ImageButton1" class="imgbt" src="images/new.gif" style="border-width:0px;" />
<input type="image" name="ImageButton2" id="ImageButton2" class="imgbt" src="images/del.gif" style="border-width:0px;" />
<input type="hidden" name="hfID" id="hfID" />
<span id="Label1">Label</span>
<div>
<table cellspacing="0" rules="all" border="1" id="GridView1" style="border-collapse:collapse;">
<tr>
<th scope="col">NO.</th><th scope="col">开始时间</th><th scope="col">结束日期</th><th scope="col">使用个数</th>
</tr><tr onClick="javascript:__doPostBack('GridView1','Select$0');" style="cursor:hand;">
<td align="center">
<span id="GridView1_ctl02_lblID">1</span>
</td><td>
<input name="GridView1$ctl02$frdt" type="text" id="GridView1_ctl02_frdt" class="Wdate" onchange="CheckDate(this)" onclick="WdatePicker({el:$dp.$('txb')})" style="width:120px;" />
</td><td>
<input name="GridView1$ctl02$todt" type="text" id="GridView1_ctl02_todt" class="Wdate" onchange="CheckDate(this)" onclick="WdatePicker({el:$dp.$('txb1')})" style="width:120px;" />
</td><td>
<input name="GridView1$ctl02$num" type="text" value="0" id="GridView1_ctl02_num" style="border-width:0px;width:10px;" />
</td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
var Holiday = ["2013-01-01", "2013-01-02", "2013-01-03","2013-05-01","2013-09-01", "2013-10-01", "2013-10-02", "2013-10-03", "2013-10-04"];
function workdays(d1,d2){
function toD(d){return new Date(d.replace(/-/g,'/')) } //转成Date对象
function ds(d){return d.getTime()/864E5>>0} //天数
var day,d,d1=toD(d1),d2=toD(d2),d0=d1,works=0,o={},i=0;
for(var i=0,L=Holiday.length;i<L;i++) o[ ds(toD( Holiday[i]))]=1;
if(d1>d2){d=d1;d1=d2;d2=d} //确保d1<d2
day=d1.getDay(); //d1星期
d1=ds(d1),d2=ds(d2);
while(d1<=d2)
if( (day+d2-d1++)%7%6||o[d1] )works++; //取星期天,六,加Holiday里的
return works;
}
function workdays(d1,d2){
function toD(d){return new Date(d.replace(/-/g,'/')) }
function ds(d){return d.getTime()/864E5>>0}
var day,d,d1=toD(d1),d2=toD(d2),works=0;
if(d1>d2){d=d1;d1=d2;d2=d}
day=d1.getDay();
d1=ds(d1),d2=ds(d2);
while(d1<=d2)if( (day+d2-d1++)%7%6 ) works++;
return works;
}
<script>
var Holiday = ["2013-01-01", "2013-01-02", "2013-01-03","2013-05-01","2013-09-01", "2013-10-01", "2013-10-02", "2013-10-03", "2013-10-04"];
var arr=[];
var ftdt="2013-01-01",todt="2013-01-10";
alert(get_fun(ftdt));
function get_fun(d){
var a_date=d.split("-"),t_date = new Date();
d=new Date(a_date[0],a_date[1]-1,a_date[2]);
t_date.setTime(d.getTime()+1000*60*60*24);
var nd=t_date.getFullYear()+"-"+("0"+(t_date.getMonth()+1)).slice(-2)+"-"+("0"+t_date.getDate()).slice(-2);
if (nd!=todt){
if(Holiday.indexOf(nd)!=-1||t_date.getDay()==0||t_date.getDay()==6){
return get_fun(nd);
}else{
arr[arr.length]=nd;
return get_fun(nd);
}
}else{
//return arr;//得到日期集合
return arr.length;//得到日期天数
}
}
</script>
刚才忘记了周末计算。
function workdays(d1,d2){
function toD(d){return Date.parse(d)/864E5>>0}
var day=new Date(d1).getDay(),d,
d1=toD(d1),d2=toD(d2),works=0;
if(d1>d2){d=d1;d1=d2;d2=d}
while(d1<=d2) if( (day+d2-d1++)%7%6 ) works++;
return works;
}