In AMPScript, how can I determine the first and last days of a week based on the current date?
1 Answer
To get the MM/DD/YYYY date for beginning of week and end of week, I believe the below AMPScript should do the trick. Keep in mind on an email, this will be based on when the AMPscript was run (at send time usually) and not at live view.
%%[ SET @Today = FormatDate(NOW(), "dddd") SET @Month = FormatDate(Now(), "mm") /* or "MMMM" if you want full month name */ SET @Year = FormatDate(Now(), "YYYY") SET @Day = FormatDate(Now(), "dd") IF @Today == "Sun" THEN SET @DayBegin = @Day SET @DayEnd = Add(@Day,6) ELSEIF @Today == "Mon" THEN SET @DayBegin = Subtract(@Day,1) SET @DayEnd = Add(@Day,5) ELSEIF @Today == "Tue" THEN SET @DayBegin = Subtract(@Day,2) SET @DayEnd = Add(@Day,4) ELSEIF @Today == "Wed" THEN SET @DayBegin = Subtract(@Day,3) SET @DayEnd = Add(@Day,3) ELSEIF @Today == "Thu" THEN SET @DayBegin = Subtract(@Day,4) SET @DayEnd = Add(@Day,2) ELSEIF @Today == "Fri" THEN SET @DayBegin = Subtract(@Day,5) SET @DayEnd = Add(@Day,1) ELSEIF @Today == "Sat" THEN SET @DayBegin = Subtract(@Day,6) SET @DayEnd = @Day ENDIF SET @BeginDate = CONCAT(@Month,CONCAT("/",CONCAT(@DayBegin,CONCAT("/", @Year)))) SET @EndDate = CONCAT(@Month,CONCAT("/",CONCAT(@DayEnd,CONCAT("/", @Year)))) ]%% This is the beginning of the week: %%=v(@BeginDate)=%%<br> This is the end of the week: %%=v(@EndDate)=%%<br> This would output the following:
This is the beginning of the week: 2/7/2016
This is the end of the week: 2/13/2016