Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: ODF 1.2
    • Component/s: OpenFormula
    • Labels:
      None
    • Proposal:
      Hide

      I propose that we fix this issue by specifying the serial number prograssion via a date after 1900/3/1. I see two ways this could be done.

      1) Replace the <table:null-date> with <table:serial-date-intercept>, the latter to be defined as:

      ------------------------------------------------------------------------
      8.4.1.1 <table:serial-date-intercept>

      The <table:serial-date-intercept> element specifies the serial number of
      1904/1/1, i.e. the numeric value obtained when the date 1904/1/1 is
      converted into a numerical value. This numerical value is specified in
      the element's table:date-value attribute.
      Note: Commonly used values are 1462, 1461, 1460, 1 and 0.

      Serial numbers for dates after 1904/1/1 must equal to the serial number
      for 1904/1/1 plus the number of days properly between 1904/1/1 and the
      given date plus 1.

      element-table:
      The <table:serial-date-intercept> element is usable with the following
      element: <table:calculation-settings> 8.4.1.
      The <table:serial-date-intercept>> element has the following attributes:
      table:date-value 17.617 and table:value-type 17.750.
      The <table:serial-date-intercept> element has no child elements.

      17.617 table:date-value
      The table:date-value attribute specifies the serial date intercept. The
      serial date intercept is the numerical value that results if the date
      value 1904/1/1 is converted into a numerical value.
      The default value for this attribute is 1462.

      attribute-table:date-value
      The table:date-value attribute is usable with the following element:
      <table:serial-date-intercept> 8.4.1.1.
      The table:date-value attribute has the data type number.
      ------------------------------------------------------------------------

      2) Alternatively we could stick with <table:null-date> but would then need a more complicated description:
      ------------------------------------------------------------------------
      The <table:null-date> element specifies the null date for a spreadsheet document. If n is the numeric value that is obtained when the date 1904/1/1 is converted to a numerical value. Then the null date is exactly n days before 1904/1/1. The null date is specified in the element's table:date-value attribute.

      Numerical values for dates after 1904/1/1 must equal to the value n for 1904/1/1 plus the number of days properly between 1904/1/1 and the given date plus 1.

      Note: The numerical value obtained when the null date is converted to a numerical value is typically -1 or 0.
      Note: Common values for the null date are 12/31/1899, 01/01/1900, and 01/01/1904.

      element-table:null-date
      The <table:null-date> element is usable with the following element: <table:calculation-
      settings> 8.4.1.
      The <table:null-date> element has the following attributes: table:date-value 17.617 and
      table:value-type 17.750.
      The <table:null-date> element has no child elements.
      ------------------------------------------------------------------------

      Solution 1 has the benefit of being simpler, solution 2 the benefit of retaining the null date.

      Show
      I propose that we fix this issue by specifying the serial number prograssion via a date after 1900/3/1. I see two ways this could be done. 1) Replace the <table:null-date> with <table:serial-date-intercept>, the latter to be defined as: ------------------------------------------------------------------------ 8.4.1.1 <table:serial-date-intercept> The <table:serial-date-intercept> element specifies the serial number of 1904/1/1, i.e. the numeric value obtained when the date 1904/1/1 is converted into a numerical value. This numerical value is specified in the element's table:date-value attribute. Note: Commonly used values are 1462, 1461, 1460, 1 and 0. Serial numbers for dates after 1904/1/1 must equal to the serial number for 1904/1/1 plus the number of days properly between 1904/1/1 and the given date plus 1. element-table: The <table:serial-date-intercept> element is usable with the following element: <table:calculation-settings> 8.4.1. The <table:serial-date-intercept>> element has the following attributes: table:date-value 17.617 and table:value-type 17.750. The <table:serial-date-intercept> element has no child elements. 17.617 table:date-value The table:date-value attribute specifies the serial date intercept. The serial date intercept is the numerical value that results if the date value 1904/1/1 is converted into a numerical value. The default value for this attribute is 1462. attribute-table:date-value The table:date-value attribute is usable with the following element: <table:serial-date-intercept> 8.4.1.1. The table:date-value attribute has the data type number. ------------------------------------------------------------------------ 2) Alternatively we could stick with <table:null-date> but would then need a more complicated description: ------------------------------------------------------------------------ The <table:null-date> element specifies the null date for a spreadsheet document. If n is the numeric value that is obtained when the date 1904/1/1 is converted to a numerical value. Then the null date is exactly n days before 1904/1/1. The null date is specified in the element's table:date-value attribute. Numerical values for dates after 1904/1/1 must equal to the value n for 1904/1/1 plus the number of days properly between 1904/1/1 and the given date plus 1. Note: The numerical value obtained when the null date is converted to a numerical value is typically -1 or 0. Note: Common values for the null date are 12/31/1899, 01/01/1900, and 01/01/1904. element-table:null-date The <table:null-date> element is usable with the following element: <table:calculation- settings> 8.4.1. The <table:null-date> element has the following attributes: table:date-value 17.617 and table:value-type 17.750. The <table:null-date> element has no child elements. ------------------------------------------------------------------------ Solution 1 has the benefit of being simpler, solution 2 the benefit of retaining the null date.

      Description

      The <table:null-date> element by itself may not uniquely identify the "date->numerical number" conversion for dates after 1900/3/1. This is due to the fact that some applications have an extra step from 1900/2/28 to 1900/3/1. The OpenFormula draft suggests that documents misrepresent the <table:null-date> so that calculations after 1900/3/1 are correct. This is an unnecessary contradiction between the definition of <table:null-date> and the OpenFormula date description.

      A close related omission is that hte standard does not specify how the numerical values change as the date changes. (It is assumed in general that this is linear with slope 1 but the standard fails to specify this.)

        Attachments

          Activity

            People

            • Assignee:
              erack Eike Rathke (Inactive)
              Reporter:
              aguelzow Andreas Guelzow (Inactive)
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: