Without a complete date picker and advanced clock functions like on ‘classic’, it is indeed a bit more delicate on X.
Basically, you start by taking “current day of the week -3” and check if the number is zero or negative. If it is, you add 7. But to return the corresponding day of the week as a name, you probably need to have a pre-set list of all 7 names, and you use the index you just calculated (between 1 and 7) to extract the required element and patch it to your output string.
You will have to do similar gymnastic to get the day of the month in order, i.e. subtracting 3 from the current day could cause a roll-over to the previous month, which means that you would need a list of month duration, which may require additional processing if you want to cater for leap years (for the record, you may be OK for the next 81 year assuming that February has 29 days every 4 years; but 2100 will NOT be a leap year, and neither will 2200 or 2300 be. 2400 will be a leap year, as 2000 was).
And you also need to roll-over the year, if “today” is January 1st.
Actually, you should already have been facing that problem if “today” is the first of the month, since yesterday would be the last day of the previous month. Have you addressed that?