Package ch.ivyteam.ivy.scripting.objects
Class BusinessDuration
java.lang.Object
ch.ivyteam.ivy.scripting.objects.BusinessDuration
- All Implemented Interfaces:
IIvyDataObject,Serializable,Cloneable,Comparable<BusinessDuration>
public class BusinessDuration
extends Object
implements IIvyDataObject, Comparable<BusinessDuration>
A
BusinessDuration represents an amount of time which is defined as working time.
Working times are defined in a business calendar configuration.
If a calendar defines working time between 8 AM and 5 PM the business duration
of a whole day is 9 hours.- Since:
- 19.12.2011
- See Also:
- API:
- This is a public API.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final BusinessDurationbusiness duration where all time values are set to zero -
Constructor Summary
ConstructorsConstructorDescriptionBusinessDuration(int hours, int minutes, int seconds) Creates a new not normalizedBusinessDuration.BusinessDuration(long initialSeconds) Creates a normalized business duration with a given amount of seconds. -
Method Summary
Modifier and TypeMethodDescriptionadd(BusinessDuration durationToAdd) Adds aBusinessDuration.clone()Creates a clone of this object.intcompareTo(BusinessDuration otherDuration) Compares two durations lexicographically.Divides theBusinessDurationby a divisor.booleanIndicates whether aBusinessDurationobject is "equal to" this one.intgetHours()intintinthashCode()Multiplies theBusinessDurationwith a factor.Returns a normalized duration.subtract(BusinessDuration durationToSubtract) Subtracts aBusinessDuration.longtoNumber()Converts theBusinessDurationinto aNumber.toString()Returns the duration as String in the ISO-8601 format.
-
Field Details
-
UNINITIALIZED_BUSINESS_DURATION
business duration where all time values are set to zero- API:
- This public API is available in Java.
-
-
Constructor Details
-
BusinessDuration
public BusinessDuration(int hours, int minutes, int seconds) Creates a new not normalizedBusinessDuration.- Parameters:
hours-minutes-seconds-- See Also:
- API:
- This public API is available in Java.
-
BusinessDuration
public BusinessDuration(long initialSeconds) Creates a normalized business duration with a given amount of seconds.- Parameters:
initialSeconds-- See Also:
- API:
- This public API is available in Java.
-
-
Method Details
-
getHours
public int getHours()- Returns:
- The hour part of the business duration.
- API:
- This public API is available in Java.
-
getMinutes
public int getMinutes()- Returns:
- The minute part of the business duration.
- API:
- This public API is available in Java.
-
getSeconds
public int getSeconds()- Returns:
- The second part of the business duration.
- API:
- This public API is available in Java.
-
add
Adds aBusinessDuration.- Parameters:
durationToAdd- TheBusinessDurationto add.- Returns:
- A new
BusinessDurationnot normalized instance which is the result of the addition! - See Also:
- API:
- This public API is available in Java.
-
subtract
Subtracts aBusinessDuration.- Parameters:
durationToSubtract- TheBusinessDurationto subtract.- Returns:
- A new
BusinessDurationnot normalized instance which is the result of the subtraction. - See Also:
- API:
- This public API is available in Java.
-
multiply
Multiplies theBusinessDurationwith a factor.- Parameters:
factor- multiplier- Returns:
- A new
BusinessDurationnot normalized instance which represent the result of this multiplication. - See Also:
- API:
- This public API is available in Java.
-
divide
Divides theBusinessDurationby a divisor.- Parameters:
divisor-- Returns:
- A new
BusinessDurationnormalized instance which represents the result of the division. - See Also:
- API:
- This public API is available in Java.
-
normalize
Returns a normalized duration. A Duration is normalized, if seconds, minutes, and hours have the same sign, the absolute values of seconds and minutes are smaller than 60. Hours will never be normalized.
E.g.BusinessDuration(0,2,90).normalize() -> BusinessDuration(0,3,30) BusinessDuration(5,62,61).normalize() -> BusinessDuration(6,3,1) BusinessDuration(28,0,0).normalize() -> BusinessDuration(28,0,0) BusinessDuration(0,4,-90).normalize() -> BusinessDuration(0,2,30)
- Returns:
- A new normalized
BusinessDurationinstance. - API:
- This public API is available in Java.
-
equals
Indicates whether aBusinessDurationobject is "equal to" this one.- Returns:
- only
truefor business durations if all fields (hours, minutes, seconds) are equal. E.g.BusinessDuration(0,1,30).equals(BusinessDuration(0,1,30)) -> true BusinessDuration(0,1,30).equals(BusinessDuration(0,0,90)) -> false BusinessDuration(0,1,30).equals(BusinessDuration(0,0,90).normalize()) -> true - See Also:
- API:
- This public API is available in Java.
-
hashCode
public int hashCode()- API:
- This public API is available in Java.
-
toString
Returns the duration as String in the ISO-8601 format. E.g.BusinessDuration(1,2,3).toString() -> "1H2M3S" BusinessDuration(0,0,3).toString() -> "3S" BusinessDuration(0,0,0).toString() -> "0S"
UNINITIALIZED_BUSINESS_DURATION.toString() -> ""- See Also:
- API:
- This public API is available in Java.
-
toNumber
public long toNumber()Converts theBusinessDurationinto aNumber.- Returns:
- Number of all seconds that represent the
BusinessDuration - API:
- This public API is available in Java.
-
compareTo
Compares two durations lexicographically.- Parameters:
otherDuration- anotherBusinessDuration.- Returns:
- 1 if the receiver is smaller than the argument,
0 if the receiver is equal to the argument,
-1 if the receiver is greater than the argument. - API:
- This public API is available in Java.
-
clone
Creates a clone of this object.- Specified by:
clonein interfaceIIvyDataObject- Returns:
- A shallow clone.
- API:
- This public API is available in Java.
-