]> source.dussan.org Git - poi.git/commitdiff
add basic implementation of TIMEVALUE function
authorPJ Fanning <fanningpj@apache.org>
Fri, 6 Aug 2021 18:19:49 +0000 (18:19 +0000)
committerPJ Fanning <fanningpj@apache.org>
Fri, 6 Aug 2021 18:19:49 +0000 (18:19 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1892047 13f79535-47bb-0310-9956-ffa450edef68

poi/src/main/java/org/apache/poi/ss/formula/functions/TimeValue.java

index 7afc3f0b0a46acb81f507cd6280adb28f97876bb..2bb56e36be392f0bcd2d0dfb4470f14261b0bb38 100644 (file)
@@ -25,7 +25,6 @@ import org.apache.poi.ss.util.DateParser;
 
 import java.time.DateTimeException;
 import java.time.LocalDate;
-import java.util.Date;
 
 /**
  * Implementation for the TIMEVALUE() Excel function.<p>
@@ -59,10 +58,12 @@ public class TimeValue extends Fixed1ArgFunction {
             }
 
             try {
-                return parseTime(dateTimeText);
+                return parseTimeFromDateTime(dateTimeText);
             } catch (Exception e) {
                 try {
-                    return parseTime("1/01/2000 " + dateTimeText);
+                    //this could be a time (with no date part) - prepend a dummy date because
+                    //parseTimeFromDateTime needs it
+                    return parseTimeFromDateTime("1/01/2000 " + dateTimeText);
                 } catch (Exception e2) {
                     LocalDate ld = DateParser.parseLocalDate(dateTimeText);
                     //return 0 as this is a pure date with no time element
@@ -77,7 +78,7 @@ public class TimeValue extends Fixed1ArgFunction {
         }
     }
 
-    private NumberEval parseTime(String dateTimeText) throws EvaluationException {
+    private NumberEval parseTimeFromDateTime(String dateTimeText) throws EvaluationException {
         double dateTimeValue = DateUtil.parseDateTime(dateTimeText);
         return new NumberEval(dateTimeValue - DateUtil.getExcelDate(DateParser.parseLocalDate(dateTimeText)));
     }