Chapter 15. Business calendar
Prev |  | Next

## Chapter 15. Business calendar

This chapter describes the business calendar of jBPM. The business calendar knows about business hours and is used in calculation of due dates for tasks and timers.

The business calendar is able to calculate a date by adding a duration and a date.

## 15.1. Duration

A duration is specified in absolute or in business hours. Let's look at the syntax:

`<quantity> [business] <unit>`

Where `<quantity>` is a piece of text that is parsable with Double.parseDouble(quantity). `<unit>` is one of {second, seconds, minute, minutes, hour, hours, day, days, week, weeks, month, months, year, years}. And adding the optional indication `business` means that only business hours should be taken into account for this duration. Without the indication `business`, the duration will be interpreted as an absolute time period.

## 15.2. Calendar configuration

The file `org/jbpm/calendar/jbpm.business.calendar.properties` specifies what business hours are. The configuration file can be customized and a modified copy can be placed in the root of the classpath.

This is the example business hour specification that is shipped by default in `jbpm.business.calendar.properties`:

    hour.format=HH:mm
    #weekday ::= [<daypart> [& <daypart>]*]
    #daypart ::= <start-hour>-<to-hour>
    #start-hour and to-hour must be in the hour.format
    #dayparts have to be ordered
    weekday.monday=    9:00-12:00 & 12:30-17:00
    weekday.tuesday=   9:00-12:00 & 12:30-17:00
    weekday.wednesday= 9:00-12:00 & 12:30-17:00
    weekday.thursday=  9:00-12:00 & 12:30-17:00
    weekday.friday=    9:00-12:00 & 12:30-17:00
    weekday.saturday=
    weekday.sunday=

    day.format=dd/MM/yyyy
    # holiday syntax: <holiday>
    # holiday period syntax: <start-day>-<end-day>
    # below are the belgian official holidays
    holiday.1=  01/01/2005 # nieuwjaar
    holiday.2=  27/3/2005  # pasen
    holiday.3=  28/3/2005  # paasmaandag
    holiday.4=  1/5/2005   # feest van de arbeid
    holiday.5=  5/5/2005   # hemelvaart
    holiday.6=  15/5/2005  # pinksteren
    holiday.7=  16/5/2005  # pinkstermaandag
    holiday.8=  21/7/2005  # my birthday
    holiday.9=  15/8/2005  # moederkesdag
    holiday.10= 1/11/2005  # allerheiligen
    holiday.11= 11/11/2005 # wapenstilstand
    holiday.12= 25/12/2005 # kerstmis

    business.day.expressed.in.hours=             8
    business.week.expressed.in.hours=           40
    business.month.expressed.in.business.days=  21
    business.year.expressed.in.business.days=  220

Prev | Up | Next
Chapter 14. Asynchronous continuations | Home | Chapter 16. Email support