On 23/09/2014 08:48, Max Leske wrote:

On 19.09.2014, at 19:14, Mark Bestley <[email protected]> wrote:

On 19/09/2014 13:48, Max Leske wrote:
Ok, so I read Chris’ e-mail and I’m intrigued.

Sven, you’re still right about financial months being 30 days for instance but 
the thing is that the current implementation seems broken (or inconsisten at 
least) and doesn’t honor that case either. *Not* making the change will not 
help us either…

So I’d say: let’s do it. If somebody objects (or proposes a change) then we can 
handle that but at least we can claim that we try to give the users what we 
preach, like writing natural language like code (e.g. “x + 1 month” which is 
currently not possible).

That’s my view at least. Also: we’re changing so much stuff in Pharo anyway all 
the time, I don’t think this would hurt.


That comment re 30 day months in financial is not totally correct.

A common reason for calculating days in a financial calculation is for interest 
calculation and then you don't just need a number for the day difference but also for 
the number of days in a year. When I did this I think I had to support many ways of 
calculating the fraction of a year that was the difference between two dates 
depending on the interest basis (ie the contract terms) , Wikipedia gives 11 
<http://en.wikipedia.org/wiki/Day_count_convention>


So I think that adding a financial number of days into a basic date object does 
not make sense as it will not be correct in many cases. The best way I have 
seen is to pass a daycount basis strategy class into the calculation and that 
strategy object does the calculation.

I like the idea of using strategies. Although some might argue that such a 
change would unnecessarily bloat the code, strategies would give us the ability 
to define our “standard” calculation in a central place while enabling everyone 
to use their custom calculations.


It does not bloat the normal code - makes it smaller.You only need the extra code if you need the extra financial calculations which most users won't. Also it is not a unnecessary increase in code as if you neded the calculations then you need the extra complexity



--
Mark


Reply via email to