...
...
...
...
...
...
...
...
...
...
...
...
Abstract
This code snippet adds a certain number of days to a date excluding the weekends. Currently, when you add a certain number of days to a date the weekends are included. To exclude them, you can use this snippet.
Logic
...
Snippet
Code Block | ||||
---|---|---|---|---|
| ||||
{% macro add(from, nod) %} {% set weeks = nod/5 %} {% set weeks = weeks | int %} {% set remDays = nod%5 %} {# Adding the whole weeks #} {% set from = from <fromDate> | date('add', weeks,'weeks') %} {# Skipping the weekend if starting with Friday #} {% if from | date('day') == "5" and remDays > 0 %} {% set from = from | date('add',1,'d') | date %} {% endif %} {# Skipping the starting weekend #} {% if from | date('day') == "6" %} {% set from = from | date('add',1,'d') %} {% endif %} {% if from | date('day') == "0" and remDays == 0 %} {% set from = from | date('add',1,'d') %} {% endif %} {# Add remaining days #} {% set from = from | date('add',remDays,'d') %} {# Skipping the ending weekend #} {% if from | date('day') == "6" %} {% set from = from | date('add',1,'d') %} {% endif %} {% if from | date('day') == "0" %} {% set from = from | date('add',1,'d') %} {% endif %} {{from | date}} {% endmacro%} {% call add(issue.fields.duedate, 22) -%} {%- endcall %businessAdd', <nod> ) | date }} |
Placeholders
Placeholder | Description | Example |
---|---|---|
<from <fromDate > | Date to which the number of days should be added | new Date() now |
<nod> | Number of days to add | 22 |
Examples
The output of this the code snippet is a TimestampMoment.js date object which you could use in:A Groovy expression, for example to:
- Set a Date/Date-time picker field - Eg: Set
- the Due date to issue created plus 5 days excluding weekends in
- one of the Set Field Value post-functions
in the Create issue post-function under Set fields of new issue section
Code Block
date(issue.get("duedate"),5)
language js linenumbers true {{ issue.fields.duedate | date('businessAdd', 5 ) | date }}
- Notify the customer that the issue will be resolved in
- 6 days from today through the
- Comment in one of the Comment issue post-functions
Subject/HTML body/Text body of Email issue post-function
Code Block
<% Date date(Date from, int nod){
Calendar c1 = GregorianCalendar.getInstance();
c1.setTime(from);
int weeks = nod/5;
int remDays = nod%5;
//Adding whole weeks
c1.add(Calendar.WEEK_OF_YEAR, weeks);
//Skipping starting weekend
if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY)
c1.add(Calendar.DAY_OF_MONTH, 1);
if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
c1.add(Calendar.DAY_OF_MONTH, 1);
//Add days
c1.add(Calendar.DAY_OF_MONTH, remDays);
//Skip ending weekend
if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY)
c1.add(Calendar.DAY_OF_MONTH, 1);
if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
c1.add(Calendar.DAY_OF_MONTH, 1);
//move to 0:00
c1.clearTime();
return c1.getTime();
}
%>
Your issue will be resolved on or before <%=date(new Date(),10)%>
References
...
language js linenumbers true Your issue will be resolved on or before: {{ issue.fields.created | date('businessAdd', 6 ) | date }}
References
- How to insert information using Nunjucks annotations
- Accessing JIRA Standard fields
- now variable
- Date filter
- businessAdd filter
Related articles
Filter by label (Content by label) | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Page Properties | ||
---|---|---|
| ||
|