It's all about the answers!

Ask a question

Subtraction of date from creation date


Tijo Joy (111) | asked Nov 25 '13, 5:42 a.m.
 Hi All, 

I using RTC 3.0.1.1 and trying to create a new date attribute which is to display creation date - 1. 

I have tried to use dojo.date.add(dojo.date.stamp.fromISOString(workItem.getValue("com.ibm.team.workitem.attribute.creationdate")), "day", -1)  and it is not working. 

I'm not sure what is wrong with this. I would appreciate any help on this. 
Thanks in Advance

Tijo 


Comments
N Z commented Nov 25 '13, 4:44 p.m.

 You have to return a Date object, not sure on the exact syntax, but something like:


var newDate = dojo.date.stamp.toISOString(new Date(myDate), {milliseconds:true, zulu:true});

where myDate is the output of your command above.

One answer



permanent link
Ralph Schoon (63.1k33645) | answered Nov 25 '13, 5:52 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
I am not sure if this helps, but this a calculation with dates:
/*******************************************************************************
 * Licensed Materials - Property of IBM
 * (c) Copyright IBM Corporation 2011. All Rights Reserved.
 *
 * Note to U.S. Government Users Restricted Rights:  
 * Use, duplication or disclosure restricted by GSA ADP Schedule 
 * Contract with IBM Corp. 
 *******************************************************************************/
dojo.provide("org.example.DateValidator_30_days_later");

dojo.require("com.ibm.team.workitem.api.common.WorkItemAttributes"); // To access the work item attributes
dojo.require("com.ibm.team.workitem.api.common.Status"); // To create a status object to return
dojo.require("com.ibm.team.workitem.api.common.Severity"); // To create a severity for the status
dojo.require("dojo.date"); // We need the date class from Dojo to compare two dates
dojo.require("dojo.date.stamp"); // We need the stamp class to work with ISO date strings

(function() {
var Severity = com.ibm.team.workitem.api.common.Severity;
var Status = com.ibm.team.workitem.api.common.Status;

var DateValidator = dojo.declare("org.example.DateValidator_30_days_later", null, {

    validate: function(attributeId, workItem, configuration) {
    
        var severity= "ERROR"; 
        var message= "Date must be at least 30 days from now"; 
       
       // Work Item new: not initialized - provides todays date. Once created provides the creation date 
        var beginDate = dojo.date.stamp.fromISOString(workItem.getValue("com.ibm.team.workitem.attribute.creationdate")); 
        // Get the current attribute's value and make a Date object from it
        console.log("I got: ["+workItem.getValue(attributeId)+"]");
        var endDate= dojo.date.stamp.fromISOString(workItem.getValue(attributeId));        
        // Compare the two dates returns negative value due to order
        var compare = -(dojo.date.difference(endDate, beginDate, "day"));
        if (compare>= 30) { // make sure endDate is not earlier than beginDate + 30
            return Status.OK_STATUS;
        } else {
            return new Status(Severity[severity], message + " current value: [" +endDate + "] and difference is " + compare);
        }
    }
});
})();

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.