ibmi-brunch-learn

Announcement

Collapse
No announcement yet.

To get previous week monday.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • To get previous week monday.

    Hi

    I need to pick up the previous week monday. for example.

    Today is 2013-10-09 - Wednesday
    if i call the program today i need pick the previous week monday that is 2013-09-30

    if the system day is 2013-10-14 = Monday
    i need pick the previous week monday that is 2013-10-07 = Monday

    if the system day is 2013-10-18 = Friday
    i need pick the previous week monday that is 2013-10-07.

    Thanx in Advance
    Magesh.

  • #2
    Re: To get previous week monday.

    set :Myday = dayofweek(current_date) will return 1 for Sunday, 2 for Monday, 6 for Friday, ect.
    If MyDay = 2 date= date - 7 days..If MyDate = 6 date = date - 11 days.

    Comment


    • #3
      Re: To get previous week monday.

      Try this:
      Code:
      set :DoW = dayofweek_iso(current_date);
      set :LastMonDate = select (current_date - (7 + :DoW - 1) days);
      Regards

      Kit
      http://www.ecofitonline.com
      DeskfIT - ChangefIT - XrefIT
      ___________________________________
      There are only 3 kinds of people -
      Those that can count and those that can't.

      Comment


      • #4
        Re: To get previous week monday.

        Try:
        Code:
        values(Next_Day(Current_Date - 14 days, 'MON'));
        or in embedded SQL
        Code:
         /Free
           Exec SQL  Set :PrvMonday = Next_Day(Current_Date - 14 Days, 'MON');
         /End-Free
        Birgitta
        Last edited by B.Hauser; October 10, 2013, 12:24 AM.

        Comment


        • #5
          Re: To get previous week monday.

          Hi

          Thanx to all,

          i did like this. and also i want to write into DB so used array.

          D @TEMP_DATE S D
          D @CURRENT_DATE S D
          D WEEK_ARR S D DIM(22) DATFMT(*MDY) ASCEND
          D WEEK_ARRZ S D DIM(22) DATFMT(*ISO) ASCEND
          D X S 2 0

          D WeekDay ds 1
          D @WeekDay 1 1
          D #WeekDay 1 1 0
          /free
          X = 0 ;
          @CURRENT_DATE = %DATE(%TIMESTAMP());
          @TEMP_DATE = @CURRENT_DATE - %DAYS(7);
          EXEC SQL
          SET :@WEEKDAY = DAYOFWEEK(:@TEMP_DATE);

          DoW #Weekday <> 2;
          @TEMP_DATE = @TEMP_DATE - %days(1);
          Set :@Weekday = DayOfWeek(:@TEMP_DATE);
          EndDo;
          X = X + 1;
          Week_arr(X) = @Temp_date;
          Week_arrZ(X) = @Temp_date;

          DOW X < 21;
          @TEMP_DATE = @TEMP_DATE + %DAYS(1);
          X = X + 1;
          Week_arr(X) = @Temp_date;
          Week_arrZ(X) = @Temp_date;
          EndDo;

          //***********************************************/
          // Establish > Date #21 Ending Date. */
          //***********************************************/
          X = X + 1;
          @TEMP_DATE = @TEMP_DATE + %YEARS(10);
          @TEMP_DATE = @TEMP_DATE + %YEARS(10);
          Week_arr(X) = @Temp_date;
          Week_arrZ(X) = @Temp_date;

          Magesh.

          Comment

          Working...
          X