所以我有这个功课,这是给定的问题:
每分钟充电优惠从早上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语句。任何想法的家伙?多谢!
答案 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);
}