Re: Compute Date Duration

Dave McKenzie <[email protected]>
Newsgroups gmane.comp.lang.as400.mi
Message-ID <[email protected]>
Beppe,

In the CDD documentation it says "The DDAT for operand 1 must be valid 
for a date duration."

In the list of format codes it lists "Date duration" (x14) as separate 
from the "Labeled durations" (x0D - x13).

Maybe that means that the only valid format code for operand 1 is x14.

In any case, I don't know exactly what a "labeled duration" is.

--Dave

Beppe Costa wrote:
> I've tried to call CDD from RPG as ExtProc('_CDD')  and from MI.
> 
> When the DDAT 1 is of type x'0014' I pass a pointer to a packed 8,0 and CDD
> returns correct data (number of years+number of month+number of days).
> 
> When the DDAT 1 is of type x'000F' I pass a pointer to a packed 15,0 and it
> fails. The message says "exactly" that the error is at offset x'0004' where
> DDAT 1 starts.
> 
> A similar error occurs when I use a format other than ISO or a char(6) date
> for DDAT 2  and DDAT 3.
> 
> For example If I use a YYMMDD date it works fine. If I try to use a CYYMMDD
> or another format it crashes and the MCH5601 signals the offset od DDAT 2.
> 
> Btw in the meanwhile I solved the problem and I compute the duration in
> another way but it would be interesting to see if there is someone that
> tried to use this instruction.
> 
> Giuseppe.
> 
> ----- Original Message ----- 
> From: "Postmaster" <fbns-Q/[email protected]>
> To: "MI Programming on the AS400 / iSeries" <mi400-Zwy7GipZuJhWk0Htik3J/[email protected]>
> Sent: Tuesday, October 11, 2005 1:24 PM
> Subject: Re: [MI400] Compute Date Duration
> 
> 
>>On 11/10/2005, at 6:48 PM, Beppe Costa wrote:
>>
>>>Simon,
>>>I don't think that there is a validation on the output parameter
>>>because
>>>it's only a pointer.
>>Are you trying to run CDD from C or MI? If from C then you pass a
>>pointer to a packed decimal variable. If from MI then you pass the
>>scalar itself.
>>
>>The error you reported is caused by validating the 4th input parameter.
>>All MI instructions that accept a template validate the content of the
>>template. When the template contains an invalid value the MCH5601
>>message is sent. This message tells you exactly what part of the
>>template is invalid.
>>
>>>Btw I'm missing something because the DDAT1 duration in x0014 is
>>>returned
>>>correctly with ISO and YMD date but I can't get it with other date
>>>format.
>>>And in any case I can never get a Labeled Duration. Unfortunately the
>>>only
>>>documentation is from a single page in the MI functional reference and
>>>an
>>>example in C that uses ISO dates. I've found nothing else.
>>http://publib/boulder.ibm.com/infocenter/iseries/v5r3/topic/rzatk/
>>topics.htm
>>
>>Click Date/Time/Timestamp
>>
>>Click Date/Time Concepts
>>
>>Read carefully.
>>
>>>Thanks in any
>>>case for your  response.
>>>Giuseppe.
>>>
>>>
>>>----- Original Message -----
>>>From: "Simon Coulter" <shc-Q/[email protected]>
>>>To: "MI Programming on the AS400 / iSeries" <mi400-Zwy7GipZuJhWk0Htik3J/[email protected]>
>>>Sent: Monday, October 10, 2005 11:41 PM
>>>Subject: Re: [MI400] Compute Date Duration
>>>
>>>
>>>>On 10/10/2005, at 10:53 PM, Beppe Costa wrote:
>>>>
>>>>>I'm trying to use the the MI CDD.
>>>>>
>>>>>When Operand1 is a DDAT x'0014' (Date Duration) I get the right value
>>>>>expressed in Years, Month and Days but when Operand1 is x'000F'
>>>>>(Labeled Duration DAY) I always get a "template value invalid".
>>>>Show the complete message text of the MCH5601 message. The
>>>>substitution
>>>>text will usually tell you what part of the template is wrong.
>>>>
>>>>My guess is that the variable containing the duration value is of the
>>>>wrong type. For x'0014' it must be PKD(8,0) but for x'000F' it must be
>>>>PKD(15,0)
>>>>
>>>>Regards,
>>>>Simon Coulter.
>>>>--------------------------------------------------------------------
>>>>    FlyByNight Software         AS/400 Technical Specialists
>>>>
>>>>    http://www.flybynight.com.au/
>>>>    Phone: +61 3 9419 0175   Mobile: +61 0411 091 400        /"\
>>>>    Fax:   +61 3 9419 0175                                   \ /
>>>>                                                              X
>>>>                  ASCII Ribbon campaign against HTML E-Mail  / \
>>>>--------------------------------------------------------------------

_______________________________________________
This is the MI Programming on the AS400 / iSeries (MI400) mailing list
To post a message email: MI400-Zwy7GipZuJhWk0Htik3J/[email protected]
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/mi400
or email: MI400-request-Zwy7GipZuJhWk0Htik3J/[email protected]
Before posting, please take a moment to review the archives
at http://archive.midrange.com/mi400.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.