Focal Point
I'm still trying to understand dates.

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/3901028331

December 20, 2004, 04:30 PM
<MikeBres>
I'm still trying to understand dates.
Specifically I'm looking for a way to organize the data by week. In general I'm trying to get a handle on how to use dates.
I've read all the topics I can find on dates. Yet something still eludes me. For instance I tried this example from the forum:
00001 -SET &TODAY=&YYMD/100;
00002 -SET &WEEK = HPART(&YYMD, 'WEEK', 'I2');
00003 -SET &LAST_MONTH = AYM(&TODAY,-1,YYM);
00004 -SET &THIS_MONTH = AYM(&TODAY,0,YYM);
00005 -SET &SDATE = &LAST_MONTH||'01';
00006 -SET &FIRSTDAY = &THIS_MONTH||'01';
00007 -SET &EDATE = AYMD(&FIRSTDAY,-1,YYMD);
00008 -SET &DT1_YYMD = '&YYMD';
00009 -* DETERMINE BEGINNING OF WEEK FOR SELECTED DATE
00010 -SET &WTDF =
00011 - DATECVT(( DATEMOV((DATECVT(&DT1_YYMD,'I8YYMD','YYMD')),'BOW')),
00012 - 'YYMD','I8YYMD');
00013 -TYPE TODAY = &TODAY
00014 -*-TYPE WEEK=&WEEK
00015 -TYPE LAST_MONTH = &LAST_MONTH
00016 -TYPE THIS_MONTH = &THIS_MONTH
00017 -TYPE FIRSTDAY = &FIRSTDAY
00018 -TYPE START_RANGE = &SDATE
00019 -TYPE END_RANGE = &EDATE
00019 -TYPE END_RANGE = &EDATE
00020 -TYPE BEGIN_WEEK = &WTDF
00021 -EXIT

And I get zeros:
TODAY = 200412
LAST_MONTH = 0
THIS_MONTH = 0
FIRSTDAY = 001
START_RANGE = 001
END_RANGE = 0
BEGIN_WEEK = 0

I try using HPART like this:
-SET &WEEK = HPART(&YYMD, 'WEEK', 'I2');

and I get an error that says: IMPROPER USE OF 'GOTO'. Huh? What does this have to do with dates?

There is just someting I'm missing on using dates. Can anybody help me out?

Thanks
Mike
December 20, 2004, 05:45 PM
<Pietro De Santis>
Dates in WebFOCUS aren't much fun! Check out this documentation:

http://techsupport.informationbuilders.com/tech/ibm/ibm_nf_nf751.html

The AYM function requires only the Year and Month portion of a date, that's why you were getting zero.

Here's the corrected code (I haven't got HPART to work in Dialog Manager yet).

-*-SET &ECHO=ALL;
-SET &TODAY_DT = &YYMD;
-SET &TODAY_YYM = EDIT(&TODAY_DT,'999999');

-*-SET WEEK = HPART(&YYMD, 'WEEK', 'I2');

-SET &LAST_MONTH = AYM(&TODAY_YYM,-1,YYM);
-SET &THIS_MONTH = AYM(&TODAY_YYM,0,YYM);

-SET &SDATE = &LAST_MONTH || '01';
-SET &FIRSTDAY = &THIS_MONTH || '01';

-SET &EDATE = AYMD(&FIRSTDAY,-1,YYMD);

-* DETERMINE BEGINNING OF WEEK FOR SELECTED DATE
-SET &WTDF =
- DATECVT(( DATEMOV((DATECVT(&TODAY_DT,'I8YYMD','YYMD')),'BOW')),
- 'YYMD','I8YYMD');

-TYPE TODAY_DT = &TODAY_DT
-*-TYPE WEEK=&WEEK
-TYPE LAST_MONTH = &LAST_MONTH;
-TYPE THIS_MONTH = &THIS_MONTH;
-TYPE FIRSTDAY = &FIRSTDAY;
-TYPE START_RANGE = &SDATE;
-TYPE END_RANGE = &EDATE;
-TYPE BEGIN_WEEK = &WTDF;
December 21, 2004, 07:39 AM
<Grzegorz>
I strongly advice you to use the Time Dimension Technique . I am using it everywhere I am allowed to (or not), and it always works.

Regards
Grzegorz

This message has been edited. Last edited by: <Mabel>,