# svyDateUtils duration issue - solved

**URL:** <https://forum.servoy.com/t/svydateutils-duration-issue-solved/19845>\
**Category:** Classic Servoy\
**Created:** [November 28, 2018, 11:36am UTC](https://forum.servoy.com/t/svydateutils-duration-issue-solved/19845 "2018-11-28T11:36:14Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![drookwood](https://avatars.discourse-cdn.com/v4/letter/d/ecae2f/32.png) [@drookwood](https://forum.servoy.com/u/drookwood)\
**Post date:** [November 28, 2018, 11:36am UTC](https://forum.servoy.com/t/svydateutils-duration-issue-solved/19845/1 "2018-11-28T11:36:14Z")

</div>

I was trying to use svyDateutils to replace functionality of the dateUtils plugin, specifically here to get the end date of a duration. So I create a duration:

````auto
var vDuration = scopes.svyDateUtils.createDurationFromDates(globals.search_date1,globals.search_date2)
``` and then want to get the end date from a different start date using the duration to calculate the end date:

````

var vDurationEndDate = vDuration.getEndOfDuration(globals.var\_date1)

```auto
This however fails with this exception: 
Exception Object: org.mozilla.javascript.EvaluatorException: Can't find method java.util.GregorianCalendar.add(number,org.mozilla.javascript.Undefined)

Looking through svyDateUtils.js it seems there are a couple of omissions in the code. Changing this

```

this.getEndOfDuration = function(startDate) {  
calendar.setTimeInMillis(startDate.getTime());  
if (this.negative) {  
calendar.add(java.util.Calendar.WEEK\_OF\_YEAR, -weeks);  
calendar.add(java.util.Calendar.DAY\_OF\_WEEK, -days);  
calendar.add(java.util.Calendar.HOUR\_OF\_DAY, -hours);  
calendar.add(java.util.Calendar.MINUTE, -minutes);  
calendar.add(java.util.Calendar.SECOND, -seconds);  
}  
else {  
calendar.add(java.util.Calendar.WEEK\_OF\_YEAR, weeks);  
calendar.add(java.util.Calendar.DAY\_OF\_WEEK, days);  
calendar.add(java.util.Calendar.HOUR\_OF\_DAY, hours);  
calendar.add(java.util.Calendar.MINUTE, minutes);  
calendar.add(java.util.Calendar.SECOND, seconds);  
}  
return new Date(calendar.getTimeInMillis());  
}

```auto

to this 

```

this.getEndOfDuration = function(startDate) {  
calendar.setTimeInMillis(startDate.getTime());  
if (this.negative) {  
calendar.add(java.util.Calendar.WEEK\_OF\_YEAR, -this.weeks);  
calendar.add(java.util.Calendar.DAY\_OF\_WEEK, -this.days);  
calendar.add(java.util.Calendar.HOUR\_OF\_DAY, -this.hours);  
calendar.add(java.util.Calendar.MINUTE, -this.minutes);  
calendar.add(java.util.Calendar.SECOND, -this.seconds);  
}  
else {  
calendar.add(java.util.Calendar.WEEK\_OF\_YEAR, this.weeks);  
calendar.add(java.util.Calendar.DAY\_OF\_WEEK, this.days);  
calendar.add(java.util.Calendar.HOUR\_OF\_DAY, this.hours);  
calendar.add(java.util.Calendar.MINUTE, this.minutes);  
calendar.add(java.util.Calendar.SECOND, this.seconds);  
}  
return new Date(calendar.getTimeInMillis());  
}

```auto

fixes it.
```
