Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
erickd1190
Contributor III
Contributor III

Generate the remaining days of the current month

HI all,

I am working on building master calendars and would like some tips to auto generate the current month's FUTURE dates.

I can create a future date and autogenerate all the dates between but would have to remember to update this anytime that predetermined date comes around.

I would also like to add the Work days, and Total days to my data.

Is there any easy way to accomplish this?

My current Calendar looks like:

MinMaxDate:

LOAD Min(Salesdate) As MinDate

Resident ABC;

LET vMinDate = PEEK('MinDate',-1,'MinMaxDate')-1;

LET vMaxDate = '12/31/2017';

Drop Table MinMaxDate;

// Master Calendar for fiscal year

Calendar:

Load Dual(fYear-1 &'/'& fYear, fYear) AS FYear,

  Dual(Month, fMonth) AS FMonth,

    DUAL ('Quarter' & Ceil(fMonth/3), Ceil(fMonth/3)) AS FQuarter,

    *;

  

Load Year + IF(Month>=$(vFM), 1,0) As fYear,

  Mod(Month-$(vFM),12)+1 As fMonth,

    DUAL('Quarter' & Ceil(Month/3), Ceil(Month/3)) AS Quarter,

   *;

Load visitdate,

Year(Salesdate) As Year,

Month(Salesdate) as Month,

Week(Salesdate) as Week

Resident ABC;

LOAD Date(recno()+$(vMinDate)) As visitdate AutoGenerate vMaxDate - vMinDate;

1 Solution

Accepted Solutions
swuehl
MVP
MVP

Maybe like

LET vMaxDate = Floor(MonthEnd(Today(1)));

View solution in original post

3 Replies
swuehl
MVP
MVP

Maybe like

LET vMaxDate = Floor(MonthEnd(Today(1)));

erickd1190
Contributor III
Contributor III
Author

Hey Stefan,

Thank you!

That seems to have done the trick. Can you help explain the Floor* syntax purpose in this for me? My understanding is that Floor rounds values down, which is why I tried Ceil* but was unlucky.

swuehl
MVP
MVP

Correct, Floor() is rounding down:

http://help.qlik.com/en-US/qlikview/12.1/Subsystems/Client/Content/ChartFunctions/GeneralNumericFunc...

Ceil() is rounding up.

I've used floor() to create an integer representing the last date of current month (monthend() will create a floating point value representing the last millisecond of the month).