× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.






Hello Joel !

Thanks, I'll try it out.

You could use the following code to determine the week number which I
stored in my archives (don't remember from where I get it).

Best regards
Ewart

*  ==================================================================
 *  = Service program... Dates                                       =
 *  = Description....... Date routines                               =
 *  ==================================================================

H NoMain

 *  ==================================================================
 *  = Prototypes                                                     =
 *  ==================================================================

 *  ------------------------------------------------------------------
 *  - RtvDayOfWeek      Retrieve day of week                         -
 *  -                                                                -
 *  - Parameter          Usage    Type                               -
 *  - Date               Input    Date field                         -
 *  -                                                                -
 *  - Return data                                                    -
 *  - Day of week        Return   Integer (0=Monday, 1=Tuesday, ...) -
 *  ------------------------------------------------------------------

D RtvDayOfWeek    PR             5I 0
D                                 D   Value

 *  ------------------------------------------------------------------
 *  - RtvWeekOfYear     Retrieve week of year                        -
 *  -                                                                -
 *  - Parameter          Usage    Type                               -
 *  - Date               Input    Date field                         -
 *  -                                                                -
 *  - Return data                                                    -
 *  - Week of year       Return   Integer                            -
 *  ------------------------------------------------------------------

D RtvWeekOfYear   PR             5I 0
D                                 D   Value

 *  ==================================================================
 *  = Procedure..... RtvDayOfWeek                                    =
 *  = Description... Retrieve day of week                            =
 *  ==================================================================

P RtvDayOfWeek    B                   Export

D RtvDayOfWeek    PI             5I 0
D  DateIn                         D   Value

D BaseMonday      S               D   Inz( D'2001-05-21' )
D NbrDays         S             10I 0

 *  ------------------------------------------------------------------
 *  - Calculate and return day of week                               -
 *  ------------------------------------------------------------------

C     DateIn        SubDur    BaseMonday    NbrDays : *D

C                   Return    ( %Rem( %Rem( NbrDays : 7 ) + 7  : 7 ) )

P RtvDayOfWeek    E

 *  ==================================================================
 *  = Procedure..... RtvWeekOfYear                                   =
 *  = Description... Retrieve week of year                           =
 *  ==================================================================

RtvWeekOfYear   B                   Export

D RtvWeekOfYear   PI             5I 0
D  DateIn                         D   Value

D                 DS
D Jan4Date                        D   Inz( D'0001-01-04' )
D  Jan4Year                      4S 0 Overlay( Jan4Date )

D MondayDate      S               D
D Jan4Day         S              5I 0
D NbrOfDays       S             10I 0

 *  ------------------------------------------------------------------
 *  - Set date to January 4 of target year and use to calculate the  -
 *  - date of the first Monday of the target year                    -
 *  ------------------------------------------------------------------

C                   Extrct    DateIn:*Y     Jan4Year
C                   Eval      Jan4Day = RtvDayOfWeek( Jan4Date )
C     Jan4Date      SubDur    Jan4Day:*D    MondayDate

 *  ------------------------------------------------------------------
 *  - If the target date is prior to the first Monday of the target  -
 *  - year, adjust the year to reflect the prior year and calculate  -
 *  - the date of the first Monday of the year again                 -
 *  ------------------------------------------------------------------

C                   If        DateIn   < MondayDate
C                   Eval      Jan4Year = Jan4Year - 1
C                   Eval      Jan4Day  = RtvDayOfWeek( Jan4Date )
C     Jan4Date      SubDur    Jan4Day:*D    MondayDate
C                   EndIf

 *  ------------------------------------------------------------------
 *  - Calculate the week of the year and return the value            -
 *  ------------------------------------------------------------------

C     DateIn        SubDur    MondayDate    NbrOfDays:*D
C                   Return    ( NbrOfDays / 7 ) + 1

P RtvWeekOfYear   E


                                                                                
                                                       
                                                                                
                                                       
                                                                                
                                                       
                                                  To:                           
                                                       
                                                         RPGNext Discussion and 
Information <rpgnext@xxxxxxxxxxxx>                     
           Joel Cochran <jrc@xxxxxxxxxx>                                        
                                                       
                                                                                
                                                       
                                                  cc:                           
                                                       
                                                                                
                                                       
           Sent by: rpgnext-bounces@xxxxxxxxxxxx                                
                                                       
                                                                                
                                                       
                                                                                
                                                       
           2004/09/10 11:26 PM                                                  
                                                       
           Please respond to RPGNext Discussion   Subject:                      
                                                       
           and Information                               Re: [RPGNext] New 
Version almost ready...                                     
                                                                                
                                                       
                                                                                
                                                       




On Fri, 2004-09-10 at 15:31, Ewart Desouza wrote:
> > How about the reverse of getdateCYMD like getdateISO  i.e. input date =
> 7,0
> > & output = yyyy-mm-dd.
>
> I'm not sure I understand... you mean send the 7,0 variable and get the
> ISO string back?
>
> Yes in ISO date format same as %date()

You can already get the functionality by sending getDateStrISO() a date
created by your CYMD value:

/free
   dateString = getDateStrISO( %date( dateCYMD : *CYMD ) );
/end-free

Unless there is something else I'm missing...

Joel
http://www.rpgnext.com



_______________________________________________
This is the RPGNext Discussion and Information (RPGNext) mailing list
To post a message email: RPGNext@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpgnext
or email: RPGNext-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
 at http://archive.midrange.com/rpgnext.




As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.