目前我有一个功能,它可以占用一天的开始时间和结束时间,并计算两者之间的差异,给我一天工作的时间。我想做的是能够让工作时间达到7天,并返回总计,同时保持显示格式(HH:mm)。
我的功能为一天的总数:
Period p = new Period(this.startTime[dayIndex], this.endTime[dayIndex]);
long hours = p.getHours();
long minutes = p.getMinutes();
String format = String.format("%%0%dd", 2);//Ensures that the minutes will always display as two digits.
return Long.toString(hours)+":"+String.format(format, minutes);
this.startTime []& this.endTime []都是DateTime对象的数组。
有什么建议吗?
答案 0 :(得分:1)
你需要一些东西来保持一周的价值,并且每天给你的功能打一次。
但这意味着您需要重构,以便您的计算器方法不会格式化为字符串,而是返回一个数值,因此您可以轻松地将它们一起添加。
答案 1 :(得分:1)
另一个简单的解决方案:
这是一种分开小时和分钟的方法。
参数是:
首先,计算小时和分钟之间的差异:
int hours = pEndHour - pStartHour;
int minutes = ((60 - pStartMinutes) + pEndMinutes) - 60;
然后,验证“minutes”变量的值是否为负数:
// If so, the "negative" value of minutes is our remnant to the next hour
if (minutes < 0) {
hours--;
minutes = 60 + minutes ;
}
最后,您可以按小时格式打印时间段:
String format = String.format("%%0%dd", 2);
System.out.println( "*** " + hours + " : " + minutes);
就是这样。
答案 2 :(得分:0)
解决方案我为那些感兴趣的人
结束了 Period[] p=new Period[7];
long hours = 0;
long minutes =0;
for(int x=0; x<=this.daysEntered;x++)
{
p[x] = new Period(this.startTime[x], this.endTime[x]);
hours += p[x].getHours();
minutes += p[x].getMinutes();
}
hours += minutes/60;
minutes=minutes%60;
String format = String.format("%%0%dd", 2);
return Long.toString(hours)+":"+String.format(format, minutes);