Thank you Stephen for your solution.
Does the cvs/svn snapshot support your example ? Is it stable enough and
when the next release is planned ? In this case, I will download the latest
snapshot.

Moreover, I still reference dates with YearMonthDay, is LocalDate more
relevant ?
At last, is it necessary to convert days in seconds to operate the division
?
Thank you for your support.
Richard

> -----Message d'origine-----
> De : [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] De la 
> part de Stephen Colebourne
> Envoyé : mardi 7 novembre 2006 22:06
> À : Discussion of the Joda project
> Objet : Re: [Joda-interest] Need advice - Fractional Periods
> 
> Richard HALLIER wrote:
> > My customer asks me for calculating the number of months between 2 
> > dates with the following pattern (actually an example):
> > 
> > start date = 17 january 2006
> > end date = 28 april 2006
> > 
> > The expected result is :
> >   (31-17+1)/31   (31 days in january)
> > + 2              (february and march)
> > + (28/30)        (30 days in april)
> > = 3.42
> 
> That feels like an unusual calculation design, although I'd 
> welcome anyone else's comments on the merits of the algorithm.
> 
> Joda-Time, does not really have any support for this at 
> present. So, you will need to treat the three parts (first 
> month, in between months, last
> month) separately.
> 
> The new Joda-Time 1.4 will contain classes named Days, Hours, 
> Minutes and Seconds. These may be useful here:
> 
> LocalDate start = new LocalDate(2006, 1, 17); LocalDate 
> endOfMonth = start.dayOfMonth().withMaximumValue();
> 
> Days days = Days.daysBetween(firstOfMonth, start); days = 
> days.plus(1);  // needed to to count days inclusively Seconds 
> secs = days.toStandardSeconds();
> 
> Days daysInMonth = Days.days(start.dayOfMonth().getMaximumValue());
> Seconds secondsInMonth = daysInMonth.toStandardSeconds();
> 
> double fractionInMonth = secs.getSeconds() / 
> secondsInMonth.getSeconds();
> 
> Although this algorithm could be repeated for each month, it 
> will be more efficient to only use it on those months which 
> are fractional.
> 
> 
> I guess the question for Joda-Time is whether support for decimal 
> calculations like this is needed. For example, the Days class has a 
> dividedBy(int) method which returns another Days and uses int 
> division. 
> Maybe we should have a dividedBy(Days) that returns a double or a 
> BigDecimal?
> 
> Stephen
> 
> --------------------------------------------------------------
> -----------
> Using Tomcat but need to do more? Need to support web 
> services, security?
> Get stuff done quickly with pre-integrated technology to make 
> your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on 
> Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&;
> dat=121642
> _______________________________________________
> Joda-interest mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/joda-interest
> 


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Joda-interest mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/joda-interest

Reply via email to