如何使用java.util.Date获取从特定时间到当前时间的分钟数?

时间:2012-03-06 00:59:17

标签: java

所以我有这个功课,这是给定的问题:

每分钟充电优惠从早上5:01到下午5:00每分钟75美分,从下午5:01到早上5:00每分钟90美分。

这是我的代码:

double charge = 0;

Date date = new Date();

if(date.getHours() >= 5 && date.getHours() <= 17)
{
    charge += 0.75 * date.getMinutes();
    System.out.println(charge);
}
else
{
    charge += 0.9 * date.getMinutes();
    System.out.println(charge);
}

我的问题是date.getMinutes()只获取当前小时的当前分钟, 它应该是从上午5:01到现在的分钟数和else语句。任何想法的家伙?多谢!

1 个答案:

答案 0 :(得分:1)

嗯,为此你可以做到

totalHours = date.getHours() - 5;
totalMinutes = (totalHours * 60) + date.getMinutes();

同样,你可以把它写成另一部分。

正如已经指出上述方法已被弃用,以下是Calendar

的方法。
Date date = new Date();
Calendar calendar = GregorianCalendar.getInstance();
calendat.setTime(date);

if(calendar.get(Calendar.HOUR_OF_DAY) > 5 && calendar.get(Calendar.HOUR_OF_DAY) < 17)
{
    int totalHours = calendar.get(Calendar.HOUR_OF_DAY) - 5;
    int totalMinutes = (totalHours * 60) + calendar.get(Calendar.MINUTE);
}

else
{
    totalHours = 24 - calendar.get(HOUR_OF_DAY) + 5;
    totalMinutes = (totalHours * 60) - (60 - calendar.get(Calendar.MINUTE);
}