A very quick article with a snippet of code to get today's date, tomorrow's, and the day after's but it has to skip Sundays.
Why?
Wanting to create a schedule for availability over the next few days which needs to dynamically change. I am aware of the function .addBusinessDay() but that excludes Saturdays which my client still works on.
How?
We're going to get today's date, then use the .addDay(), check none of these are a Sunday, and move the next few days along:
thisDate = '2021-10-30'; v_Today = thisDate; v_Tomorrow = v_Today.addDay(1); v_NextDay = v_Today.addDay(2); if(v_Today.getDayOfWeek()==1) { v_Today = v_Today.addDay(1); v_Tomorrow = v_Tomorrow.addDay(1); v_NextDay = v_NextDay.addDay(1); } // if(v_Tomorrow.getDayOfWeek()==1) { v_Tomorrow = v_Tomorrow.addDay(1); v_NextDay = v_NextDay.addDay(1); } // if(v_NextDay.getDayOfWeek()==1) { v_NextDay = v_NextDay.addDay(1); } info v_Today.toString("EEEE dd-MMM-yy"); info v_Tomorrow.toString("EEEE dd-MMM-yy"); info v_NextDay.toString("EEEE dd-MMM-yy"); // // yields: // Saturday 30-Oct-21 // Monday 01-Nov-21 // Tuesday 02-Nov-21
- thisDate = '2021-10-30';
- v_Today = thisDate;
- v_Tomorrow = v_Today.addDay(1);
- v_NextDay = v_Today.addDay(2);
- if(v_Today.getDayOfWeek()==1)
- {
- v_Today = v_Today.addDay(1);
- v_Tomorrow = v_Tomorrow.addDay(1);
- v_NextDay = v_NextDay.addDay(1);
- }
- //
- if(v_Tomorrow.getDayOfWeek()==1)
- {
- v_Tomorrow = v_Tomorrow.addDay(1);
- v_NextDay = v_NextDay.addDay(1);
- }
- //
- if(v_NextDay.getDayOfWeek()==1)
- {
- v_NextDay = v_NextDay.addDay(1);
- }
- info v_Today.toString("EEEE dd-MMM-yy");
- info v_Tomorrow.toString("EEEE dd-MMM-yy");
- info v_NextDay.toString("EEEE dd-MMM-yy");
- //
- // yields:
- // Saturday 30-Oct-21
- // Monday 01-Nov-21
- // Tuesday 02-Nov-21
Note that Sunday is day of week 1.
Here's the English ordinal bit I used:
m_Ordinals = {1:"st",21:"st",31:"st",2:"nd",22:"nd",3:"rd",23:"rd"}; v_Day3_Ordinal = ifnull(m_Ordinals.get(v_NextDay.toString("d").toLong()),"th");
- m_Ordinals = {1:"st",21:"st",31:"st",2:"nd",22:"nd",3:"rd",23:"rd"};
- v_Day3_Ordinal = ifnull(m_Ordinals.get(v_NextDay.toString("d").toLong()),"th");
v_Day1_Header = "<p>Today<br /><b>" + v_Today.toString("EEEE") + "</b><br />" + v_Today.toString("MMMM") + "</p>"; v_Day2_Header = "<p>Tomorrow<br /><b>" + v_Tomorrow.toString("EEEE") + "</b><br />" + v_Tomorrow.toString("MMMM") + "</p>"; v_Day3_Header = "<p>" + v_NextDay.toString("d") + v_Day3_Ordinal + "<br /><b>" + v_NextDay.toString("EEEE") + "</b><br />" + v_NextDay.toString("MMMM") + "</p>";
- v_Day1_Header = "<p>Today<br /><b>" + v_Today.toString("EEEE") + "</b><br />" + v_Today.toString("MMMM") + "</p>";
- v_Day2_Header = "<p>Tomorrow<br /><b>" + v_Tomorrow.toString("EEEE") + "</b><br />" + v_Tomorrow.toString("MMMM") + "</p>";
- v_Day3_Header = "<p>" + v_NextDay.toString("d") + v_Day3_Ordinal + "<br /><b>" + v_NextDay.toString("EEEE") + "</b><br />" + v_NextDay.toString("MMMM") + "</p>";