function dow(nd,nm,ny)  {
 var a = Math.floor((14-nm)/12);
 var y = ny - a
 var m = nm + 12*a - 2;
 var d = (nd + y + Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400) + Math.floor((31*m)/12)) % 7;
 return d+1;
}
function nthd(nw,nm,ny)  {
 var nd = 31;
 return nd - (dow(nd,nm,ny) - nw + 7)%7;
}
