Or
<$view format="date" template=<<mymacro>> />
/*\
title: $:/stobot/macros/dateadd.js
type: application/javascript
module-type: macro
Takes a base date and adds days, months or years
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Information about this macro
*/
exports.name = "dateadd";
exports.params = [
{name: "basedate"},
{name: "days"},
{name: "months"},
{name: "years"}
];
/*
Run the macro
*/
exports.run = function(basedate, days, months, years) {
//Make each date object.
if (basedate === "") {
var newdate = new Date();
} else {
var baseyear = basedate.substr(0,4);
var basemonth = basedate.substr(4,2);
var baseday = basedate.substr(6,2);
var newdate = new Date(Number(baseyear), Number(basemonth)-1, Number(baseday), 0, 0, 0);
}
var new_year = Number(newdate.getFullYear())+Number(years);
var new_month = Number(newdate.getMonth())+Number(months);
var new_day = Number(newdate.getDate())+Number(days);
var output_date = new Date(new_year, new_month, new_day, 0, 0, 0);
var result = (output_date.getFullYear()*10000) + ((output_date.getMonth()+1)*100) + (output_date.getDate());
return result;
};
})();
/*\
THIS IS A MODIFIED COPY
title: $:/stobot/macros/dateadd.jstype: application/javascriptmodule-type: macro
Takes a base date and adds days, months or years
\*/(function(){
/*jslint node: true, browser: true *//*global $tw: false */"use strict";
/*Information about this macro*/
exports.name = "dateadd";
exports.params = [ {name: "basedate"}, {name: "days"}, {name: "months"}, {name: "years"}, {name: "template"}];
/*Run the macro*/exports.run = function(basedate, days, months, years, template) { //Make each date object. if (basedate === "") { var newdate = new Date(); } else { var baseyear = basedate.substr(0,4); var basemonth = basedate.substr(4,2); var baseday = basedate.substr(6,2); var newdate = new Date(Number(baseyear), Number(basemonth)-1, Number(baseday), 0, 0, 0); }
var new_year = Number(newdate.getFullYear())+Number(years); var new_month = Number(newdate.getMonth())+Number(months); var new_day = Number(newdate.getDate())+Number(days);
var output_date = new Date(new_year, new_month, new_day, 0, 0, 0); var result = (output_date.getFullYear()*10000) + ((output_date.getMonth()+1)*100) + (output_date.getDate()); if(template === ""){ return result; } else { return $tw.utils.formatDateString(output_date,template); }};
})();Evans formulae plugin has tgath ability I believe.
Regards
Tony
$tw.utils.formatDateString. Thanks so much!
TonyM - good point about the formula plugin, that'd be an option as well.