2 of 2 people found this helpful
You should read this seminal post on days and times in Velocity, where I explain that you must always include a timezone when parsing dates.
In particular, this section explains how to use $date.difference without surprising shifts of one day in either direction.
Once you set the tz (by including the boilerplate code at the top of the post), you simply call $math.sub:
#set( $DAYS_OFFSET_BASE = 89 ) #set( $ret = $calNow.set( $calNow.get($calConst.YEAR), $calNow.get($calConst.MONTH), $calNow.get($calConst.DAY_OF_MONTH), 0, 0, 0 ) ) #set( $ret = $calNow.set($calConst.MILLISECOND,0) ) #set( $calLeaseCreateDate = $convert.toCalendar( $convert.parseDate( $lead.prog_leasecreatedate, $ISO8601DateOnly, $defaultLocale, $defaultTimeZone ) ) ) #set( $daysUntilLeaseCreate = $date.difference($calNow,$calLeaseCreateDate).getDays() ) #if( $daysUntilLeaseCreate > 0 ) #set( $daysOffsetFromBase = $math.sub($DAYS_OFFSET_BASE, $daysUntilLeaseCreate) ) prog_leasecreatedate offset is $daysOffsetFromBase. #else prog_leasecreatedate is not in the future. #end
Finally, when posting code, please use the syntax highlighter in Advanced Editor, not a screenshot:
Thanks again Sanford, that blog post of yours is extremely useful.