OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office-formula message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [office-formula] Conflict between Part 1 and Part 2


On Sat, 2010-02-06 at 13:27 -0700, Patrick Durusau wrote:
> Andreas,
> 
> Let me see if I can summarize what is being suggested:
> 
> 1) Add a table:skip-date attribute to the <table:calculation-settings> 
> element in part 1.
> 
> 2) Values for the table:skip-date attribute are: 0 and 1. Defaults to 0. 
> With the following semantics:
> 
> 0 - In the construction of serial dates, if the epoch starts prior to 
> 1900-03-01, the number of days between 1900-02-28 and 1900-03-01 is zero.
> 
> 1 - In the construction of serial dates, if the epoch starts prior to 
> 1900-03-01, the number of days between 1900-02-28 and 1900-03-01 is one.
> 
> 3) No change required in the current table:date-value attribute of the 
> <table:null-date> element, which currently defaults to 12/30/1899.
> 
> 4) To be consistent with part 1, the "shall" requirement for support in 
> part 2 should be amended to say dates from 1899-12-31 through 9999-12-31 
> shall be supported.

Which of course forces applications with a null-date of later than
1899-12-31 to support negative dates. I have no problem with that but we
should be aware of that implication.

> 
> Does that met the requirement that applications be able to signal their 
> treatment of the date in question?

yes

Andreas

> 
> Particularly when the dates appear with no outward sign concerning the 
> presumptions under which they were generated. (Eric's point from earlier 
> in the thread.)
> 
> Hope everyone is having a great weekend!
> 
> Patrick
> 
> Andreas J. Guelzow wrote:
> > On Fri, 2010-02-05 at 10:13 -0700, robert_weir@us.ibm.com wrote:
> >   
> >> "Andreas J. Guelzow" <andreas.guelzow@concordia.ab.ca> wrote on 02/05/2010 
> >> 11:08:43 AM:
> >>
> >>     
> >>>> There are other date-related bugs in spreadsheets.  If I type 0 into 
> >>>>         
> >> Excel 
> >>     
> >>>> and format it as a date, it displays "1/0/1900".  Do we need an 
> >>>>         
> >> attribute 
> >>     
> >>>> for that as well? 
> >>>>         
> >>> Gnumeric does _not_ have the  1900-02-29 date, nevertheless it has a
> >>> skip, ie. the above difference is 2. 
> >>>
> >>> You seem to claim that the only reasonable number to date mapping or
> >>> date to number mapping is such that (1900-03-01 minus 1900-02-29) is 1.
> >>> That is simply false. There are many reasonable ones, and specifically a
> >>> small number currently in use. I object to the characterization of any
> >>> choice other than one's favourite one as a "bug".
> >>>
> >>>       
> >> Well, to be perfectly honest, my opinion is that having any representation 
> >> for *1900-02-29 is unreasonable. It is just as much a bug as having a 
> >> representation for the "41st of Twelvetober". 
> >>     
> >
> > I agree. Any representation for *1900-02-29 is unreasonable. There is no
> > such date.
> >   
> >> However, my expectations for the number of days between 1900-02-28 and 
> >> 1900-03-01 is purely based on expectations of what would occur if 1900 
> >> were a leap year, in which case there would be a 1900-02-29. 
> >>     
> >
> > I see a distinction between "difference in serial numbers" and "number
> > of days between". The latter is DAYS(...).  
> >
> >   
> >> That said, I admit I had not considered that some implementations might 
> >> have two 1900-02-28's in a row.  Thanks for pointing that out.
> >>     
> >
> > I don't think I ever pointed anything like that out. There are
> > applications in which not every integer is a valid date serial number.
> > And there are applications that behave as if it make sense to permit
> > large negative numbers as serial numbers corresponding to Gregorian
> > dates.
> >
> >   
> >> The tricky part is still the behavior.  For example, WEEKDAY() gives the 
> >> day of the week for a date.  Take 1900-02-27.  Both Excel and Gnumeric map 
> >> this to serial value 58.  OpenOffice calls it 59.  But Gnumeric and 
> >> OpenOffice correctly note that it is a Tuesday, even though they differ on 
> >> the serial number.  Excel incorrectly calls it a Monday, even though it 
> >> shares the same serial number of Gnumeric.
> >>
> >> So I don't think a skip value clarifies behavior here.
> >>     
> >
> > The real world does not have serial numbers. 1900-02-27 is a Tuesday, so
> > saying it is a Monday is a bug. I am not concerned with bugs.
> > Saying that the serial number of 1900-02-27 is 59 (or 58) is a choice,
> > not a bug. We should allow for these choices. 
> >
> >   
> >>> I am usually told that "we can't do that because implementation are
> >>> doing it differently". As a consequence we seem to include such nonsense
> >>> functions as CHITEST and provide for duplicate versions of lots of other
> >>> functions. Either we worry about current implementations or we don't.
> >>>
> >>>       
> >> I think adding an alias for a function is something that is relatively 
> >> easy for an implementor to do, yes? 
> >>     
> >
> > How many different names does it take before it becomes primarily
> > confusing to users? But you are right it doesn't take any more work than
> > adding an attribute.
> >   
> >>     
> >>> As far as the expected behaviour is concerned, a combination of true
> >>> null-date plus an attribute about a skip would allow evaluators to
> >>> correctly deal with post 1900-3-1 dates and warn a user about potential
> >>> problems with pre 1900-3-1 dates. As long as users use number <-> date
> >>> conversions in their calculations there will always be a portability
> >>> issue. At least we can provide the tools to have users advised about
> >>> them.
> >>>
> >>>       
> >> We already have null-date.  skip-date would be defined as what?  "The 
> >> number of date serial numbers between 1900-02-28 and 1900-03-01"?  By 
> >> default it would be 0.  Excel could set it to 1.  Gnumeric could set it to 
> >> 2.  Is that the idea?
> >>     
> >
> > Basically, except that Excel and Gnumeric would have the same value
> > which is 1 larger than OOo.
> >
> >   
> >>  Would there be any other values in use that we know 
> >> of?  Are there any other reasonable values?  If we can constrain it to 0, 
> >> 1, or 2, I'd be more comfortable.
> >>     
> >
> > I think in fact it is 0 or 1 (or 1 and 2 depending on the exact
> > definition). So its really a boolean: skip or no-skip. (Of course for
> > Gnumeric this assumes a null-date prior to 1900-03-01, if you are
> > running Gnumeric with null-date that is later, we don't have that skip.)
> >
> > Andreas
> >  
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe from this mail list, you must leave the OASIS TC that
> > generates this mail.  Follow this link to all your TCs in OASIS at:
> > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 
> >
> >
> >   
> 




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]