예제 #1
0
 public void DATEVALUE()
 {
     AssertExpression("=DATEVALUE(\"\")", "#VALUE!");
     AssertExpression("=DATEVALUE(\"22/8/2011\")", "40777");
     AssertExpression("=DATEVALUE(\"22-Απρ-2011\")", "40655");
     AssertExpression("=DATEVALUE(\"23/2/2011\")", "40597");
     AssertExpression("=DATEVALUE(\"23-Ιουλ\")", ExcelValue.ToDateSerial(DateTime.Now.Year, 7, 23).ToString());
     AssertExpression("=DATEVALUE(\"22-Απλ-2011\")", "#VALUE!");
 }
예제 #2
0
        public void DateValue_ToDateSerial()
        {
            Assert.Null(ExcelValue.ToDateSerial(new DateTime(1821, 3, 25)));
            Assert.Null(ExcelValue.ToDateSerial(new DateTime(1899, 12, 31)));
            Assert.Equal(1, ExcelValue.ToDateSerial(new DateTime(1900, 1, 1)));
            Assert.Equal(2, ExcelValue.ToDateSerial(new DateTime(1900, 1, 2)));
            Assert.Equal(59, ExcelValue.ToDateSerial(new DateTime(1900, 2, 28)));
            Assert.Equal(61, ExcelValue.ToDateSerial(new DateTime(1900, 3, 1)));
            Assert.Equal(39448, ExcelValue.ToDateSerial(new DateTime(2008, 1, 1)));
            Assert.Equal(43967, ExcelValue.ToDateSerial(new DateTime(2020, 5, 16)));

            Assert.Null(ExcelValue.ToDateSerial(0, 0, 0, 0, 0, -1));
            Assert.Equal(0.0, ExcelValue.ToDateSerial(0, 0, 0, 0, 0, 0));
            Assert.Equal(0.0000115741, ExcelValue.ToDateSerial(0, 0, 0, 0, 0, 1));
            Assert.Equal(0.4668171296, ExcelValue.ToDateSerial(0, 0, 0, 11, 12, 13));
            Assert.Equal(0.9999884259, ExcelValue.ToDateSerial(0, 0, 0, 23, 59, 59));
        }
예제 #3
0
        public virtual string ToString(DateTime value, ExpressionFormat info)
        {
            var format = info.GetFormat(ExpressionFormat.ShortDatePattern);

            if (format.NeedsDate)
            {
                return(string.Format(culture, format.Format, value));
            }
            // Should start from beginning in order to use the overriden methods
            var serial = ExcelValue.ToDateSerial(value);

            if (serial.HasValue)
            {
                return(ToString(serial.Value, info));
            }
            return(ExcelValue.NA.ToString());
        }