Java问题简介:
我有这个代码:
// edited above
} else if ((now >= (1000 * 60 * 60 * 24) && (now < (1000 * 60 * 60 * 48)))) {
now = (now / (1000 * 60 * 60 * 24));
time = String.valueOf(now + " day ago");
} else if ((now >= (1000 * 60 * 60 * 48) && (now < (1000 * 60 * 60 * 24 * 30)))) {
now = (now / (1000 * 60 * 60 * 24));
time = String.valueOf(now + " days ago");
Run Code Online (Sandbox Code Playgroud)
你可以看到我在做什么.如果在24-48小时之前发生了什么事情,那就是"1天前",但如果是48小时到1个月(或30天)之间,那就是"X天*s*之前".我不知道如何把月份放在这种情况下.如果我删除第二个if声明的右侧......它有效.它会说3天前,或15天前,376天前.显然,在30天之后,我希望它在一个多月前说出来......但是根据它是怎样的,例如,15天前的事情,将不会在该条款内注册,它将跳过.我错过了一些非常小的东西吗?
补充代码:
这是整个事物的背景; 一切都工作到"天":
lCDateTime = Calendar.getInstance();
now = lCDateTime.getTimeInMillis();
now = now - total;
if (now <= ((1000 * 60 * 1))) {
now = (now / 1000);
time = String.valueOf(now + " seconds ago");
} else if ((now > (1000 * 60 * 1)) && (now < 1000 * 60 * 2)) {
now = (now / (1000 * 60));
time = String.valueOf(now + " minute ago");
} else if ((now >= (1000 * 60 * 2)) && (now < 1000 * 60 * 60)) {
now = (now / (1000 * 60));
time = String.valueOf(now + " minutes ago");
} else if ((now >= (1000 * 60 * 60) && now < (1000 * 60 * 60 * 2))) {
now = (now / (1000 * 60 * 60));
time = String.valueOf(now + " hour ago");
} else if ((now >= (1000 * 60 * 60 * 2) && (now < (1000 * 60 * 60 * 24)))) {
now = (now / (1000 * 60 * 60));
time = String.valueOf(now + " hours ago");
} else if ((now >= (1000 * 60 * 60 * 24) && (now < (1000 * 60 * 60 * 48)))) {
now = (now / (1000 * 60 * 60 * 24));
time = String.valueOf(now + " day ago");
} else if ((now >= (1000 * 60 * 60 * 48) && (now < (1000 * 60 * 60 * 24 * 30)))) {
now = (now / (1000 * 60 * 60 * 24));
time = String.valueOf(now + " days ago");
Run Code Online (Sandbox Code Playgroud)
你的最后一句话
else if ((now >= (1000 * 60 * 60 * 48) && (now < (1000 * 60 * 60 * 24 * 30))))
Run Code Online (Sandbox Code Playgroud)
永远不会是真的,因为(1000*60*60*24*30)等于-1702967296(又名溢出).如果你真的坚持这样做,请使用BigInteger.但是我强烈建议您重写代码.
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |