短いプログラム その2

最初はこれで

function dayCount(y,m,d){
  return (y-1)*365+((y-1)/4|0)-((y-1)/100|0)+((y-1)/400|0)+((m<3)*m-(m<8)+(m-1)*30.4|0)+d+(y%4<1^y%100<1^y%400<1)*(m>2);
}

調べているうちに短いアルゴリズムを探して

function dayCount(y,m,d){
  return (y-=(m<3)*1,m+=(m<3)*12,y*365+(y/4|0)-(y/100|0)+(y/400|0)+(306*(m+1)/10|0)-428+d);
}

これも短くなるのでしょうね^^;