Week number

Pickering, John (NORBORD) PICKERIJ@norbord.com
Sun, 2 Nov 2003 11:27:38 -0500


Mikael

Here's the contents of a use file that I wrote to do just this. It uses only
defines so that it can be used in any PowerHouse component, not just Quiz.
By company definintion, the week starts on Sunday and the week which
contains January 1 belongs to the year with four or more days in that week.

I hope this is of some use.

Regards,
JWP



;----------- WEEKNO - Use file with defines to calculate week number. 
;
;    use file takes D-DATE-PARM (8 digit date) and returns
;    week number in D-WEEK-CODE (4 character string, YYWW)

DEFINE D-YYYY CHAR*4 &
  =    ASCII(DATE(DAYS(LASTDAY(D-DATE-PARM))+1),8)[1:4] &
    IF ("1229" = ASCII(D-DATE-PARM,8)[5:4] AND &
        0 GE MOD(DAYS(D-DATE-PARM),7)) &
    OR ("1230" = ASCII(D-DATE-PARM,8)[5:4] AND &
        1 GE MOD(DAYS(D-DATE-PARM),7)) &
    OR ("1231" = ASCII(D-DATE-PARM,8)[5:4] AND &
        2 GE MOD(DAYS(D-DATE-PARM),7)) &
  ELSE ASC(DATE(DAYS(NCON(ASC(D-DATE-PARM,8)[1:6]+"01"))-1),8)[1:4] &
    IF ("0101" = ASCII(D-DATE-PARM,8)[5:4] AND &
        4 LE MOD(DAYS(D-DATE-PARM),7)) &
    OR ("0102" = ASCII(D-DATE-PARM,8)[5:4] AND &
        5 LE MOD(DAYS(D-DATE-PARM),7)) &
    OR ("0103" = ASCII(D-DATE-PARM,8)[5:4] AND &
        6 LE MOD(DAYS(D-DATE-PARM),7)) &
  ELSE ASCII(D-DATE-PARM,8)[1:4]

DEFINE D-JAN-01 DATE = NCON(D-YYYY+"0101")

DEFINE D-SUNDAY-WEEK-01 DATE &
  =    DATE(DAYS(D-JAN-01) - MOD(DAYS(D-JAN-01),7)) &
    IF 3 GE MOD(DAYS(D-JAN-01),7) &
  ELSE DATE(DAYS(D-JAN-01) - MOD(DAYS(D-JAN-01),7) + 7)

DEFINE D-WEEK-NUMBER INT*2 &
  =    FLOOR((DAYS(D-DATE-PARM) - DAYS(D-SUNDAY-WEEK-01)) / 7) + 1

DEFINE D-WEEK-CODE CHAR*4 &
  =    D-YYYY[3:2] + ASCII(D-WEEK-NUMBER,2)

DEFINE D-WEEK-STARTS DATE &
  =    DATE(DAYS(D-SUNDAY-WEEK-01) + (7 * D-WEEK-NUMBER) - 7)

;--------------------------------------------------------------------



-----Original Message-----
From: Mikael.Olesen@qss-uk.com [mailto:Mikael.Olesen@qss-uk.com]
Sent: Friday, October 31, 2003 5:02 AM
To: powerh-l@lists.swau.edu
Subject: Week number


Hi
Does anyone out there have a piece of quiz code that calculates the week
number from a date?
Thank you
Kind Regards
Mikael Olesen



Mikael Olesen
Analyst Programmer
Phone:    01444 445340
Email:     mikael.olesen@qss-uk.com