Bump version to 24.04.3.4
[LibreOffice.git] / external / jfreereport / patches / libformula-seconds_rounding.patch.1
blob369332d1a8f0b759f926bdd8f747a3780d76dd83
1 diff -ur jfreereport_libformula.org/source/org/pentaho/reporting/libraries/formula/function/datetime/SecondFunction.java jfreereport_libformula/source/org/pentaho/reporting/libraries/formula/function/datetime/SecondFunction.java
2 --- jfreereport_libformula.org/source/org/pentaho/reporting/libraries/formula/function/datetime/SecondFunction.java     2016-03-05 09:43:06.121774691 +0100
3 +++ jfreereport_libformula/source/org/pentaho/reporting/libraries/formula/function/datetime/SecondFunction.java 2016-03-05 09:51:04.810488511 +0100
4 @@ -29,7 +29,7 @@
5  import org.pentaho.reporting.libraries.formula.util.NumberUtil;
6  
7  /**
8 - * This function extracts the minute (0 through 59) from a time.
9 + * This function extracts the seconds (0 through 59) from a time.
10   *
11   * @author Cedric Pronzato
12   */
13 @@ -67,14 +67,15 @@
15      // time * 24 so that we get the full hours (which we remove later)
16      final BigDecimal bd = NumberUtil.getAsBigDecimal(n);
17 -    final BigDecimal hours = bd.multiply(MINUTES_PER_DAY);
18 -    final BigDecimal dayAndHoursAsInt = NumberUtil.performIntRounding(hours);
19 -    final BigDecimal minutesFraction = hours.subtract(dayAndHoursAsInt);
21 -    // Multiply the minutes with 60 to get the minutes as ints
22 -    final BigDecimal seconds = minutesFraction.multiply(SECONDS);
23 -    final BigDecimal secondsAsInt = NumberUtil.performIntRounding(seconds);
24 +    final BigDecimal minutes = bd.multiply(MINUTES_PER_DAY);
25 +    final BigDecimal dayHoursAndMinutesAsInt = NumberUtil.performIntRounding(minutes);
26 +    final BigDecimal secondsFraction = minutes.subtract(dayHoursAndMinutesAsInt);
28 +    // Multiply the minutes with 60 to get the seconds as ints
29 +    final BigDecimal seconds = secondsFraction.multiply(SECONDS);
30 +    final BigDecimal nanoSeconds = seconds.setScale(9, BigDecimal.ROUND_HALF_UP);
31 +    final BigDecimal secondsAsInt = NumberUtil.performIntRounding(nanoSeconds);
33      return new TypeValuePair(NumberType.GENERIC_NUMBER, secondsAsInt);
34    }
36 \ No newline at end of file