public static BigDecimal getExcelDate(final Date date) { final String dateSystem = LibFormulaBoot.getInstance().getGlobalConfig().getConfigProperty ("org.pentaho.reporting.libraries.formula.ZeroDate", "1900"); final boolean excelBugCompatible = "true".equals(LibFormulaBoot.getInstance().getGlobalConfig().getConfigProperty ("org.pentaho.reporting.libraries.formula.ExcelDateBugAware", "false")); return getExcelDate(date, excelBugCompatible, computeZeroDate(dateSystem, excelBugCompatible)); }
public static BigDecimal getExcelDate( final Date date ) { final String dateSystem = LibFormulaBoot.getInstance().getGlobalConfig().getConfigProperty ( "org.pentaho.reporting.libraries.formula.ZeroDate", "1900" ); final boolean excelBugCompatible = "true".equals( LibFormulaBoot.getInstance().getGlobalConfig().getConfigProperty ( "org.pentaho.reporting.libraries.formula.ExcelDateBugAware", "false" ) ); return getExcelDate( date, excelBugCompatible, computeZeroDate( dateSystem, excelBugCompatible ) ); }
/** * Given a excel date, converts it into a Date. Assumes 1900 date windowing. * * @param date the Excel Date * @return Java representation of a date (null if error) */ public static Date getJavaDate( final BigDecimal date ) { final String dateSystem = LibFormulaBoot.getInstance().getGlobalConfig().getConfigProperty ( "org.pentaho.reporting.libraries.formula.ZeroDate", "1900" ); final boolean excelBugCompatible = "true".equals( LibFormulaBoot.getInstance().getGlobalConfig().getConfigProperty ( "org.pentaho.reporting.libraries.formula.ExcelDateBugAware", "false" ) ); return getJavaDate( date, excelBugCompatible, computeZeroDate( dateSystem, excelBugCompatible ) ); }
/** * Given a excel date, converts it into a Date. Assumes 1900 date windowing. * * @param date the Excel Date * @return Java representation of a date (null if error) */ public static Date getJavaDate(final BigDecimal date) { final String dateSystem = LibFormulaBoot.getInstance().getGlobalConfig().getConfigProperty ("org.pentaho.reporting.libraries.formula.ZeroDate", "1900"); final boolean excelBugCompatible = "true".equals(LibFormulaBoot.getInstance().getGlobalConfig().getConfigProperty ("org.pentaho.reporting.libraries.formula.ExcelDateBugAware", "false")); return getJavaDate(date, excelBugCompatible, computeZeroDate(dateSystem, excelBugCompatible)); }
public void testDateConversion1904() { final FormulaContext context = getContext(); final Date januaryFirst1904 = DateUtil.createDate( 1904, 1, 1, context.getLocalizationContext() ); final Date januaryFirst1900 = DateUtil.createDate( 1900, 1, 1, context.getLocalizationContext() ); final Date marchFirst1904 = DateUtil.createDate( 1904, 3, 1, context.getLocalizationContext() ); final Date marchFirst1900 = DateUtil.createDate( 1900, 3, 1, context.getLocalizationContext() ); // these numbers must match whatever OpenOffice computes .. assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1900, false, HSSFDateUtil.computeZeroDate( "1904", false ) ), new BigDecimal( -1460 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1900, false, HSSFDateUtil.computeZeroDate( "1904", false ) ), new BigDecimal( -1401 ) ); assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1904, false, HSSFDateUtil.computeZeroDate( "1904", false ) ), new BigDecimal( 0 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1904, false, HSSFDateUtil.computeZeroDate( "1904", false ) ), new BigDecimal( 60 ) ); assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1900, true, HSSFDateUtil.computeZeroDate( "1904", true ) ), new BigDecimal( -1461 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1900, true, HSSFDateUtil.computeZeroDate( "1904", true ) ), new BigDecimal( -1401 ) ); assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1904, true, HSSFDateUtil.computeZeroDate( "1904", true ) ), new BigDecimal( 0 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1904, true, HSSFDateUtil.computeZeroDate( "1904", true ) ), new BigDecimal( 60 ) ); }
public void testDateConversion1899() { final FormulaContext context = getContext(); final Date januaryFirst1904 = DateUtil.createDate( 1904, 1, 1, context.getLocalizationContext() ); final Date januaryFirst1900 = DateUtil.createDate( 1900, 1, 1, context.getLocalizationContext() ); final Date marchFirst1904 = DateUtil.createDate( 1904, 3, 1, context.getLocalizationContext() ); final Date marchFirst1900 = DateUtil.createDate( 1900, 3, 1, context.getLocalizationContext() ); // these numbers must match whatever OpenOffice computes .. assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1900, false, HSSFDateUtil.computeZeroDate( "1899", false ) ), new BigDecimal( 2 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1900, false, HSSFDateUtil.computeZeroDate( "1899", false ) ), new BigDecimal( 61 ) ); assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1904, false, HSSFDateUtil.computeZeroDate( "1899", false ) ), new BigDecimal( 1462 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1904, false, HSSFDateUtil.computeZeroDate( "1899", false ) ), new BigDecimal( 1522 ) ); assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1900, true, HSSFDateUtil.computeZeroDate( "1899", true ) ), new BigDecimal( 2 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1900, true, HSSFDateUtil.computeZeroDate( "1899", true ) ), new BigDecimal( 62 ) ); assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1904, true, HSSFDateUtil.computeZeroDate( "1899", true ) ), new BigDecimal( 1463 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1904, true, HSSFDateUtil.computeZeroDate( "1899", true ) ), new BigDecimal( 1523 ) ); }
public void testDateConversion1900() { final FormulaContext context = getContext(); final Date januaryFirst1904 = DateUtil.createDate( 1904, 1, 1, context.getLocalizationContext() ); final Date januaryFirst1900 = DateUtil.createDate( 1900, 1, 1, context.getLocalizationContext() ); final Date marchFirst1904 = DateUtil.createDate( 1904, 3, 1, context.getLocalizationContext() ); final Date marchFirst1900 = DateUtil.createDate( 1900, 3, 1, context.getLocalizationContext() ); // these numbers must match whatever OpenOffice computes .. assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1900, false, HSSFDateUtil.computeZeroDate( "1900", false ) ), new BigDecimal( 0 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1900, false, HSSFDateUtil.computeZeroDate( "1900", false ) ), new BigDecimal( 59 ) ); assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1904, false, HSSFDateUtil.computeZeroDate( "1900", false ) ), new BigDecimal( 1460 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1904, false, HSSFDateUtil.computeZeroDate( "1900", false ) ), new BigDecimal( 1520 ) ); assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1900, true, HSSFDateUtil.computeZeroDate( "1900", true ) ), new BigDecimal( 0 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1900, true, HSSFDateUtil.computeZeroDate( "1900", true ) ), new BigDecimal( 60 ) ); assertEqual( HSSFDateUtil.getExcelDate( januaryFirst1904, true, HSSFDateUtil.computeZeroDate( "1900", true ) ), new BigDecimal( 1461 ) ); assertEqual( HSSFDateUtil.getExcelDate( marchFirst1904, true, HSSFDateUtil.computeZeroDate( "1900", true ) ), new BigDecimal( 1521 ) ); }