いくつかのコードでこれを見ましたが、それが何をするのか全く分かりません:
var jdn = function(y, m, d) {
var tmp = (m <= 2 ? -1 : 0);
return ~~((1461 * (y + 4800 + tmp)) / 4) +
~~((367 * (m - 2 - 12 * tmp)) / 12) -
~~((3 * ((y + 4900 + tmp) / 100)) / 4) +
d - 2483620;
};
オペレーターは何を~~
しますか?
ベストアンサー1
それは~~
ダブルだビット否定演算子。
これは、より速い代替Math.floor()
正の数の場合Math.floor()
、小数点以下の部分を切り取るだけなので、負の数の場合と同じ結果は返されません(この例については他の回答を参照してください)。