Please enable JavaScript to view this site.

 

Navigation: Holidays > Recurring Holidays > Name

Variable Holiday Names

Scroll Prev Up Next More

You can have the names of your recurring holidays change depending on the circumstances of the date calculated from the current holidays rule.

 

The variability is specified by the inclusion of one or more lines, below the holiday's plain name (the text on the first row of the holiday name textbox into the holiday name variation), which begin with >>> followed by one of the keywords, and equal sign and then the name to use if the keyword applies.

 

How Variable Holiday Names are Determined

 

The recurrence rule is first used to generate one or more holiday occurrences. Each occurrence has a calculated date and may also have a marker such as BASE, MOV, or DUP. Holiday name variations are then evaluated against each generated occurrence.

 

Date conditions use the calculated date, including its resulting weekday, day, month and year. Marker conditions use the occurrence’s BASE, MOV or DUP status. More than one variation can apply; apart from the special priority rules for competing year variations, matching variations are processed in their listed order. In such cases, <hol> represents the holiday name produced so far, initially the base name.

 

Special codes on the right

 

 

<hol>

This code <hol>, placed anywhere on the right of the = sign, will be replaced with the text of the first line of the holiday.

 

In the example on the right, we have a holiday which lasts 2 days, always.

 

The <hol> on the right means that, on the second day, the <hol> is replaced by the first line of the holiday, "President's Day", and the holiday name is therefore "President's Day Holiday".

 

Important

 

Multiple matching variations can accumulate, and their order can matter. The marker <hol> corresponds to the name produced so far.

 

To make sure that a particular name variation does not get tainted by preceding name variations, or is set independently of the plain name of the holiday, set that specific variation without the <hol> marker, as shown on the right.

 

Note also that the marker <hol> should appear only once per variation; any second appearance will be ignored.

<DELETE>

This code <DELETE>, placed on the right of the = sign, will delete the occurrence of the holiday that matches the keywords on the left.

 

Although not strictly necessary, we recommend placing the <DELETE> marker alone on the right of the equal sign.

 

In the example on the right, we have a holiday which has an extra day on the Monday, if its usual date falls on a Sunday. The DUP keyword corresponds to these Monday substitute, or day in lieu, holidays. The code <DELETE> on the right means that these Monday substitute occurrences should be deleted.

 

For advanced examples of the use of the <DELETE> code, see this topic.

 

Keywords on the left

 

Below is a list of the allowed keywords, and examples of their use, to create holiday name variations.

 

Note that:

 

All variations (including year conditions) are based on the final date calculated by the recurrence rule. Thus, an occurrence moved across New Year is matched using the year of its resulting date.

Keywords and month abbreviations are case-sensitive in this function and should be uppercase.

Multiple ordinary conditions can match and are processed in their listed order. The special priority rules select among competing year conditions.

 

DUP

The DUP keyword specifies the name to use for any "duplicated" date (corresponding to the also occur on setting of the weekdays options of holidays recurrence rules).

 

For example, if Australia Day falls on a Sunday, then the following Monday is a public holiday in Australia but, of course, one would not call that day Australia Day. In the example here we chose to call it Australia Day Holiday.

 

Using <DELETE> as part of any holiday variation will ensure that dates covered by that variation are not generated. For example, using >>>DUP=<DELETE> on a holiday with Sunday duplicated on Monday would mean that the dates corresponding to these days in lieu are not generated.

 

It is also possible to specify that a different name variation should be used, depending on the weekday on which the duplicated holiday occurs, as shown below.

 

 

In the above example, we handle the fact that some Malaysian states observe a Friday-Saturday weekend, and some observe a Saturday-Sunday weekend, by changing the list of states that observe the day in lieu duplicated holiday.

 

 

It is possible to specify that a different name variation should be used, depending on the day of the month on which the duplicated holiday occurs, as shown below.

 

 

Finally, it is also possible to specify that a different name variation should be used, depending on the month in which the duplicated holiday occurs, using for example DUP_DEC to apply a name variation to the duplicated date of a holiday, but only when that duplicated date falls in December.

BASE

The BASE keyword specifies the name to use for the base date of a holiday which has been duplicated (see DUP option above).

 

In the example on the left, in Fiji, when a public holiday falls on a Sunday, then its observance is moved to the next Monday. Here, however, rather than using the MOV keyword, we use the DUP keyword because readers might be disturbed by the absence of an entry on January 1st. So we still display the Sunday occurrence of January 1st, but we use the BASE keyword to specify that this is not a public holiday stricto sensu.
 

The BASE keyword does not support forms such as BASE_1 or BASE_26, although a year prefix such as 2027_BASE is supported.

MOV

The MOV keyword specifies the name to use for any "moved" date (corresponding to the are moved to setting of the weekdays options of holidays recurrence rules).

 

For example, in Colombia the Saint Joseph Day bank holiday, normally on March 19, is moved to the nearest Monday if it falls on any other weekday, and in such cases calling that bank holiday as Saint Joseph Day would be wrong, so we use a holiday name variation to have its name changed to Saint Joseph's Day Holiday.

 

Just as is the case for the DUP keyword above, it is possible to specify that a different name variation should be used, depending on the weekday on which a holiday is moved to (eg. MOV_1), or depending on the day of the month to which the holiday is moved (eg. MOV_27), or depending on the month in which the moved holiday occurs (eg. MOV_DEC).

DAY

 

DUR

The DAY and DUR keywords are useful for multiple day events.

 

Specific Day

 

The DAY keyword, when followed by a number indicates that a specific variation of the name should occur on the specified day of a multi-day holiday (eg. DAY2 would apply to the second day only of a multi-day holiday).

 

Anything but a Specific Day

 

The DAY keyword can also be followed by a tilde and a number to indicate that a specific variation of the name should occur on all days except the specified day of a multi-day holiday (eg. DAY~1 would apply to all days of a holiday except the first day).

 

Specific Day Before or After Position

 

To use a variation if the current holiday date is before or after a given position in the multiple day event, use the < and > and the position to refer to, after the DAY keyword.

 

For example, DAY<3 would apply to the first 2 days of a multi-day holiday. Conversely, DAY>3 would apply to the 4th day and subsequent days of a multi-day holiday.

 

Conditional Specific Day

 

To indicate that a variation should be applied to the Xth date of a multi-day holiday lasting Y days, use the DURX/Y keyword.

 

For example, DUR2/3 will apply to the second day of a multi-day holiday lasting exactly 3 days.

0

When the keyword is a single digit from 1-7, then it specifies the name to use in the case of the holiday falling on a given day of the week (Monday=1, ..., Sunday=7).

 

In the example on the left, the holiday is a full day holiday when it falls on a Monday (>>>1), and is only a half-day afternoon holiday when it falls on a Friday (>>>5).

00

When the keyword is a double-digit from 01-31, then it specifies the name to use in the case of the holiday falling on a given day of the month (from 1-31).

 

In the example on the left, the holiday is observed on the 3rd Monday in August. But, as the anniversary being commemorated was August 17, we want to change the name when the holidays falls on the 17th of August.

MMM

When the keyword is the 3-letter abbreviation of the month name, then it specifies the name to use in the case of the holiday falling on a specific month (from JAN to DEC).

 

The MMM keyword can be used on its own or, as in the example on the left, combined with the 0000 and/or 00 or 0 keywords.

0000

special name in 2011

special name in 2011

add "(tentative)" to the name for any year beginning with 2012

add "(tentative)" to the name for any year beginning with 2012

add a list of states to the name for the years 2011 to 2014, inclusively

add a list of states to the name for the years 2011 to 2014, inclusively

observed in different regions depending if the year is a leap year or a common year

observed in different regions depending if the year is a leap year or a common year

observed in Catalonia in leap years beginning on a Friday or common years beginning on a Saturday

observed in Catalonia in leap years beginning on a Friday or common years beginning on a Saturday

the top 2 rules, having a suffix, take precedence over the bottom rule, when the holiday date is a Wednesday or a Friday

the top 2 rules, having a suffix, take precedence over the bottom rule, when the holiday date is a Wednesday or a Friday

Specific year

 

When the keyword is a four-digit from 2000-9999, then it specifies the name to use for all occurrences of a holiday in a given calendar year. In the example on the left, the holiday in 2011 is renamed as the 30th Anniversary of Independence, something that will only occur in 2011.

 

Range of years

 

You can specify a range of years using 2 dots (..) to separate the beginning year from the end year (eg. 2011..2014).

 

Minimum and maximum years

 

You can add a + or - to the 4 digits to indicate that the change occurs for the given year and all future years (eg. 2011+), or for the given year and all years before (eg. 2011-).

 

Leap years and common years

 

You can add the suffix L or C to a minimum year variation to specify that the variation is only applicable in leap years or common years (non-leap years), respectively.

 

For example, the variation 2024+L would only apply for leap years beginning in 2024, while the variation 2025+C would only apply to common years beginning in 2025.

 

You can also specify that a variation only occurs for leap year or common years that begin on a specific weekday (ie. January 1st of that year is a specific weekday). In the example on the left, beginning in 2023, Pentecost Monday is observed in Catalonia in leap years beginning on a Friday (2023+L5) or common years beginning on a Saturday (2023+C6).

 

Priority order for year variations

 

You can mix all of the above year variations, but you should keep in mind the following order of priority, which runs from most specific to most general.

 

If a holiday occurs on a date that matches more than one year variation, then Q++Studio will use the following priority order to decide which variation to use:

 

1.Specific year, such as 2025.

2.Range of specific years, such as 2022..2026.

3.Leap or common year beginning on a specific weekday, such as 2023+L5 or 2023+C6.

4.Leap or common year, such as 2023+L or 2023+C.

5.Minimum or maximum year range, such as 2025+ or 2020-.

6.The DEFAULT marker.

 

Finally note that a year variation with a suffix will have priority over a simple year variation, as shown in the example on the left, where 2023+_5 and 2023+_3 take precedence over 2023+ when the holiday date is a Wednesday or a Friday.

 

Suffixes

 

Any of the other name variation keywords can be added to any of the year variation keywords, separating them with an underscore. For example: 2011+_DUP or 2012_MOV or 2023+_30 or 2025+_28.

DEFAULT

Use the DEFAULT keyword to specify the name of the holiday when none of the special cases apply.

 

In the example on the left, the use of the DEFAULT keyword allows us to remove the usual (except CT) from the name of the holiday, so that the 2010, 2014, 2015, and 2017 exceptions can use the <hol> token. Without the DEFAULT keyword entry, the full name of the holiday, minus the usual (except CT), would have had to be written out every line (for example >>>2017=Maundy Thursday (except CT VC) ).

 

In the example to the left, the DEFAULT entry is the very first one, and it makes sense, for the sake of legibility, to place it there, but there is no technical requirement that the DEFAULT entry should be the very first one; it can be placed in any position.

ALWAYS

Use the ALWAYS keyword to specify that the current holiday should always use the same name, regardless of which special cases apply.

 

This is often used for holidays sets where the name of the holiday is not used directly, but rather might be read in a macro, to identify as the same holiday many different holidays.

 

For example you might want Maundy Thursday, Good Friday, Easter Saturday, Easter, and Easter Monday, to all use the ALWAYS=Easter Holidays variation, so that their dates might be concatenated as all being part of the same holiday (either using holidays multiple options or a macro).

 

Important

 

Note that the <DELETE> marker takes precedence over ALWAYS.

 

Also, the text to the right of an ALWAYS variation must be fixed. In particular, any <hol> located to the right of an ALWAYS variation will be ignored.

 

Including Observances in Holiday Name Variations

 

The usual manner of setting a recurring holiday's observance is to do it in the holidays manager's user interface. However, you can also specify the observance of each generated holiday using observance labels in variable names, in the same manner as it is done for recurring holidays' names.

 

See also: variable abbreviations.

 


Topic 178620, last updated on 12-Sep-2026