【发布时间】:2016-03-07 13:40:28
【问题描述】:
我正在 Groovy 中创建一个 csv,需要准备一些持续时间。我正在为该任务使用 TimeDuration。
Date start = Date.parse('dd.MM.yyyy hh:mm', 04.03.2016 14:30)
Date end = Date.parse('dd.MM.yyyy hh:mm', 04.03.2016 23:30)
TimeDuration duration = TimeCategory.minus( end, start );
entry << "${duration.hours}:${duration.minutes}";
一切都很好。现在我创建暂停持续时间:
TimeDuration pause;
if(duration.hours >=6 && duration.hours < 8){
pause = new TimeDuration(0, 0, 30, 0, 0) ;
} else if ( duration.hours >= 8 ) {
pause = new TimeDuration(0, 0, 45, 0, 0) ;
} else {
pause = new TimeDuration(0, 0, 0, 0, 0) ;
}
entry << "${pause.hours}:${pause.minutes}";
entry << ";";
到目前为止一切都很好。现在我减去暂停以获得真正的工作时间:
// subtract pause from duration
TimeDuration workTime= duration.minus(pause);
entry << "${workTime.hours}:${workTime.minutes}";
entry << ";";
对于我的持续时间为 9 小时 00 分钟的情况,我的工作时间为 9 小时 -45 分钟
println entry; // 9:00;0:45;9:-45
我想要的工作时间是 8:15。
有什么提示吗?
【问题讨论】:
标签: date groovy subtraction