This isn't exactly an Office question, but when I was trying to decide who might have a clue how to do this, you all were first on the list.

We are writing a .NET (C#) application that is supposed to distribute hours over time using one of four distribution curves. Currently, the programmer is taking the total number of periods and dividing them into three groups. Then, each period in each group gets the same spread as shown below. So, for example, if 120 hours were spread over six weeks, in an EVEN distribution, each period would be assigned 20 hours. INCR would have 9, 9, 18, 18, 33, 33. PEAK would be 12, 12, 36, 36, 12, 12. And DECR would, of course, be 33, 33, 18, 18, 9, 9.

That works pretty well if the periods are divisible by three. It starts getting trickier when that isn't the case or when the hours don't come out evenly and he needs to work with partial hours (which the system doesn't accomodate, so they need to be rounded off neatly). The ways in which he accounts for those issues seems to be getting more convoluted as we go on.

So, I was hoping for a function to which we could pass hours, periods, and distribution type which would then return a nice array of whole numbers that fall into a nice distribution pattern. I don't think the breakdown below is set in stone, just a first stab at figuring out a way to do this. To me, the larger the number of periods, the less effective this method seems. If the hours are spread over three years, the PEAK doesn't give you much of a peak, more of a plateau.

So, any ideas? As always, many thanks!

INCR // First third of the periods get 15% of the hours
// Middle third of the periods get 30% of the hours
// Last third of the periods get 55% of the hours

PEAK // First third of the periods get 20% of the hours
// Middle third of the periods get 60% of the hours
// Last third of the periods get 20% of the hours

DECR // First third of the periods get 55% of the hours
// Middle third of the periods get 30% of the hours
// Last third of the periods get 15% of the hours