#### Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Options

# How can I convert a dateformula into a duration?

Member Posts: 34
edited 2011-08-09
Hi guys,

I have a series of dateformula fields that I want to convert into durations. Is this possible?

e.g. I need '1Y' to be expressed as a duration of one year, 1M one month... etc

Thanks

Dan

• Options
Member Posts: 413
DanK wrote:
Hi guys,

I have a series of dateformula fields that I want to convert into durations. Is this possible?

e.g. I need '1Y' to be expressed as a duration of one year, 1M one month... etc

Thanks

Dan
I wouldn't do that...there is no distinct duration of a month : it can be 28, 29,30 or 31 days. Same goes for a year ( 365 or 366 )
• Options
Member Posts: 34
MBerger wrote:
DanK wrote:
Hi guys,

I have a series of dateformula fields that I want to convert into durations. Is this possible?

e.g. I need '1Y' to be expressed as a duration of one year, 1M one month... etc

Thanks

Dan
I wouldn't do that...there is no distinct duration of a month : it can be 28, 29,30 or 31 days. Same goes for a year ( 365 or 366 )

Good point, I think more my purposes it is safe to assume a year is 365 and a month is 31 days.
• Options
Member Posts: 413
DanK wrote:
MBerger wrote:
DanK wrote:
Hi guys,

I have a series of dateformula fields that I want to convert into durations. Is this possible?

e.g. I need '1Y' to be expressed as a duration of one year, 1M one month... etc

Thanks

Dan
I wouldn't do that...there is no distinct duration of a month : it can be 28, 29,30 or 31 days. Same goes for a year ( 365 or 366 )

Good point, I think more my purposes it is safe to assume a year is 365 and a month is 31 days.
Think about that carefully ( also think of future modifications ) because "Assumption is the mother of all fuckups"
• Options
Member Posts: 1,130
What you intend to do can be likened to the attempt to store the result of an integer division in an integer. The result may be good, but it is more likely that it is not exact, and the error might range between neglectable to unacceptable.

The easiest way to get a duration in days is to apply the formula to just any date (somewhere in the middle of the range of valid dates), subtract the original date from the result and assign this difference to an integer.
• Options
Member Posts: 8,304
He doesn't want 'number of days' he wants dateformula expressed as regular words.

You'll have to write your own functions to convert that. If you want an example of a structure find the check report, that has functions that translate numbers into words, so you can kind of use that as inspiration of how to program that.
• Options
Member Posts: 34
vaprog wrote:
What you intend to do can be likened to the attempt to store the result of an integer division in an integer. The result may be good, but it is more likely that it is not exact, and the error might range between neglectable to unacceptable.

The easiest way to get a duration in days is to apply the formula to just any date (somewhere in the middle of the range of valid dates), subtract the original date from the result and assign this difference to an integer.

^ This is exactly what I ended up doing. I needed to compare a duration field with a dateformula field.. hense the need to convert the dateformula into the appropriate type.

My code ended up like this:
duration := (CALCDATE(dateformula,WORKDATE) - WORKDATE);

If anyone can suggest a better way of doing this I'd love to hear it.

Thanks,

Dan
• Options
Member Posts: 1,130
DenSter wrote:
He doesn't want 'number of days' he wants dateformula expressed as regular words.
Oh, you're right. I read that but did not get it's meaning, so I ignored it. Now you told me, this explanatory remark in the original request makes sense.

On the other hand:
DanK wrote:
The easiest way to get a duration in days is to apply the formula to just any date (somewhere in the middle of the range of valid dates), subtract the original date from the result and assign this difference to an integer.
^ This is exactly what I ended up doing.
:?
• Options
Member Posts: 34
Yeah, sorry.. my original example wasn't very clear #-o