It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

user macro to format date

Reto Eggenberger Jun 30, 2014

Hi all,

I would like to make a user macro, which does a similar thing to the date formatting used with tasks.

User macro with the bodytext (or a parameter) as a date (dd.mm.yyyy).

If the date is in the past, the formatting shall be changed to red.

Is this possible with a simple user macro?

Thx for any help.

Reto E.

1 answer

1 accepted

0 votes
Answer accepted
Davin Studer Community Leader Jun 30, 2014

This is super hacky but it works. Maybe there is a better way to handle dates with velocity, but I've had a devil of a time finding it.

## Developed by: Davin Studer
## Date created: 7/1/2014

## @param Date:title=Date|type=date|desc=Date to start from. Format: dd/mm/YYYY

#set ($len = 0)
#set ($i = 0)
#set ($parts = $paramDate.split("/"))
#set ($today = $action.dateFormatter.getCalendar())

## Having trouble finding out the length/size of $parts ... brute force it
#foreach ($part in $parts)
    #set ($len = $len + 1)
#end

#if ($len == 3)
    ## Buiding date variable from parameter string ... can't seem to find a better way to do it with velocity
    #foreach ($part in $parts)
        #if ($i == 0)
            #set ($day = $generalUtil.convertToInteger("$part"))
        #elseif ($i == 1)
            #set ($month = $generalUtil.convertToInteger("$part"))
            #set ($month = $month - 1)
        #else
            #set ($year = $generalUtil.convertToInteger("$part"))
        #end

        #set ($i = $i + 1)
    #end

    #set ($cal = $action.dateFormatter.getCalendar())
    $cal.set($year, $month, $day, 0, 0, 0)

    ## Compare enetered date to today
    #if($today.timeInMillis > $cal.timeInMillis)
        <span style="color: #FF0000">$paramDate</span>
    #else
        $paramDate
    #end
#else
    bad date
#end

Reto Eggenberger Jul 01, 2014

Thx Devin.

I'm new to velocity in confluence. And couldn't find a way to convert a string into a date to work with. Espacially because confluence has a param-type date, but it is treated as a normal string ...

Your 'hack' works for now.

Suggest an answer

Log in or Sign up to answer
This widget could not be displayed.
This widget could not be displayed.
Community showcase
Published in Confluence

6 Awesome Ways to Apply Trello, JIRA and Confluence to your Project

I attended  Atlassian Summit 2019  and learned a lot from the presenters, attendees and knowledgeable Atlassian product managers. The presentations I attended focused on applying Agile, pla...

1,222 views 7 18
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you