WayneFrank
Member
I need a way to calculate the last day of the month. Is there a Progress function for this?
Thanks, Wayne
Thanks, Wayne
FUNCTION getLastDayOfMonth RETURNS DATE(INPUT ipdDate AS DATE)
FORWARD.
MESSAGE
getLastDayOfMonth(TODAY) "~n"
getLastDayOfMonth(01/30/2003) "~n"
getLastDayOfMonth(12/30/2004)
VIEW-AS ALERT-BOX INFO BUTTONS OK.
FUNCTION getLastDayOfMonth RETURNS DATE(INPUT ipddate AS DATE):
RETURN ADD-INTERVAL (ipddate, 1, 'Month') - DAY(ADD-INTERVAL
(ipddate, 1, 'Month')).
END FUNCTION.
DEFINE VARIABLE v-date-last-date AS DATE NO-UNDO.
ASSIGN v-date-last-date = 12/12/2008 .
PROCEDURE GET_last_day:
DEFINE INPUT-OUTPUT PARAMETER p-inp-out-date AS DATE NO-UNDO.
DEFINE VARIABLE v-cha-date AS CHARACTER NO-UNDO.
ASSIGN v-cha-date = STRING((IF MONTH(p-inp-out-date) < 12 THEN MONTH(p-inp-out-date) ELSE 0) + 1 ) + "/01"
+ "/" + STRING(IF MONTH(p-inp-out-date) < 12 THEN YEAR(p-inp-out-date) ELSE (YEAR(p-inp-out-date) + 1))
p-inp-out-date = DATE(v-cha-date) - 1.
END PROCEDURE.
RUN GET_last_day ( INPUT-OUTPUT v-date-last-date).
MESSAGE "LAST DAY" SKIP v-date-last-date
VIEW-AS ALERT-BOX INFO BUTTONS OK.
I am not good in OE so..its for older version
FUNCTION lastDay RETURNS DATE (INPUT dDate AS DATE):
IF dDate EQ ? THEN RETURN ?.
IF month(dDate) = 12 THEN RETURN DATE(12,31,YEAR(dDate)).
RETURN DATE(MONTH(dDate) + 1,1,YEAR(dDate)) - 1.
END FUNCTION.
MESSAGE lastDay(date(01,01,2008)).