poi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From n...@apache.org
Subject svn commit: r576492 - /poi/trunk/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Day.java
Date Mon, 17 Sep 2007 15:58:55 GMT
Author: nick
Date: Mon Sep 17 08:58:54 2007
New Revision: 576492

URL: http://svn.apache.org/viewvc?rev=576492&view=rev
Log:
Implementation of the Day function from Pavel Krupets

Modified:
    poi/trunk/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Day.java

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Day.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Day.java?rev=576492&r1=576491&r2=576492&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Day.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hssf/record/formula/functions/Day.java Mon
Sep 17 08:58:54 2007
@@ -14,12 +14,51 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-/*
- * Created on May 15, 2005
- *
- */
 package org.apache.poi.hssf.record.formula.functions;
 
-public class Day extends NotImplementedFunction {
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+
+import org.apache.poi.hssf.record.formula.eval.Eval;
+import org.apache.poi.hssf.record.formula.eval.ValueEval;
+import org.apache.poi.hssf.record.formula.eval.BlankEval;
+import org.apache.poi.hssf.record.formula.eval.ErrorEval;
+import org.apache.poi.hssf.record.formula.eval.NumberEval;
+import org.apache.poi.hssf.record.formula.eval.NumericValueEval;
 
+/**
+ * @author Pavel Krupets
+ */
+public class Day extends NumericFunction {
+    /**
+     * @see org.apache.poi.hssf.record.formula.functions.Function#evaluate(org.apache.poi.hssf.record.formula.eval.Eval[],
int, short)
+     */
+    public Eval evaluate(Eval[] operands, int srcCellRow, short
+srcCellCol) {
+        ValueEval retval = null;
+        
+        switch (operands.length) {
+        default:
+            retval = ErrorEval.VALUE_INVALID;
+            break;
+        case 1:
+            ValueEval ve = singleOperandEvaluate(operands[0],
+srcCellRow, srcCellCol);
+            if (ve instanceof NumericValueEval) {
+                NumericValueEval ne = (NumericValueEval) ve;
+                if (HSSFDateUtil.isValidExcelDate(ne.getNumberValue())) {
+                    java.util.Date d = HSSFDateUtil.getJavaDate(ne.getNumberValue());
+                    java.util.Calendar c = java.util.Calendar.getInstance();
+                    c.setTime(d);
+                    retval = new NumberEval(c.get(java.util.Calendar.DAY_OF_MONTH));
+                } else {
+                    retval = ErrorEval.NUM_ERROR;
+                }
+            } else if (ve instanceof BlankEval) {
+                // do nothing
+            } else {
+                retval = ErrorEval.NUM_ERROR;
+            }
+        }
+        return retval;
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org


Mime
View raw message