检索两个日期之间的时间并检查是否已过去一个月

时间:2016-06-04 03:48:17

标签: java plugins time minecraft bukkit

我有2个日期分配给日历实例。 (现在,然后)。

Calendar currentDate = new Calendar().getInstance();

Calendar oldDate = Calendar.getInstance();
oldDate.setTimeInMillis(plugin.joinTimeLog.getLong(p.getName() + ".time"));

基本上,我的目标是每个月(每30天)只发生一次事件。如果30天还没有过去,那就告诉他们一个月过去多久。

EG。 " 21d 17hrs 54mins直到你有权访问。"

这是我当前的代码,似乎提供了完全不正确的天数和小时数(注意;我还没有设置分钟)。

Calendar timeLeft = Calendar.getInstance();
timeLeft.setTimeInMillis(currentDate.getTimeInMillis() - (oldDate.getTimeInMillis() + (60 * 60 * 24 * 30 * 1000)));
int daysLeft = daysBetween(currentDate, timeLeft);
int hoursLeft = Math.round(hoursBetween(currentDate, timeLeft));

然后我使用以下代码来确定是否已过了一个月;

if (daysLeft <= 0) {

以下是我获取daysLeft和hoursLeft的方法;

public int daysBetween(Calendar d1, Calendar d2) {
    return (int)( (d1.getTimeInMillis() - d2.getTimeInMillis()) / (1000 * 60 * 60 * 24));
}

public int hoursBetween(Calendar d1, Calendar d2) {
    return (int)( (d1.getTimeInMillis() - d2.getTimeInMillis()) / (1000 * 60 * 60));
}

0 个答案:

没有答案