我使用JodaTime LocalTime是为了指定时间。怎样才能得到两次之间的分钟差值?
LocalTime startT = new LocalTime(6,30);
LocalTime endT = new LocalTime(12,15);
// LocalTime duration = this.endT.minusMinutes(startT);
// int durationMinutes = duration.getMinutes();发布于 2014-03-13 19:01:43
如果你问
如何计算两次之间的分钟差值?
然后我会想到以下更直观的解决方案:
LocalTime startT = new LocalTime(6,30);
LocalTime endT = new LocalTime(12,15);
int minutes = Minutes.minutesBetween(startT, endT).getMinutes(); // 345m = 6h - 15m表达式
Period.fieldDifference(startT, endT).getMinutes()将只产生-15,这意味着不考虑小时差异,因此不会将小时转换为分钟。如果第二个表达式确实是你想要的,那么问题应该是这样的:
如何才能得到两个LocalTime-instances的分钟部分之间的差异?
针对Java-8进行了更新:
LocalTime startT = LocalTime.of(6,30);
LocalTime endT = LocalTime.of(12,15);
long minutes = ChronoUnit.MINUTES.between(startT, endT);
System.out.println(minutes); // output: 345
// Answer to a recommendation in a comment:
// Attention JSR-310 has no typesafety regarding units (a bad design choice)
// => UnsupportedTemporalTypeException: Unsupported unit: Minutes
minutes = Duration.between(startT, endT).get(ChronoUnit.MINUTES);发布于 2014-03-13 17:41:56
如果我正确理解了你的问题,以下内容应该可以完成这项工作:
Period diff = Period.fieldDifference(startT, endT);
int minutes = diff.getMinutes(); https://stackoverflow.com/questions/22374151
复制相似问题