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!"); }
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)); }
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()); }