【发布时间】:2011-08-23 17:16:37
【问题描述】:
我在一些代码中看到了这一点,但我不知道它的作用:
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;
};
~~ 运算符是做什么的?
【问题讨论】:
-
您现在可能已经弄清楚了,但它会返回千年与给定日期之间的天数
-
当我在 codewars 上看到它时,谷歌搜索了这个,结果发现 google 不支持波浪号。谢谢鸭鸭!
-
简单来说,它会将 '9' 转换为数字 9。如果您在控制台中执行以下操作,即使使用 IE8,它也必须比 Math.floor() 快: typeof ~~'9'/ /号码
-
没有 cmets 是一回事,但我最讨厌的是有人将其命名为
jdn。我什至不知道那代表什么。 -
Math.trunc(),而不是 Math.floor()
标签: javascript