Page 1 of 1
Calculate date from [weeknumber]-[weekdaynumber]?
Posted: Fri Mar 05, 2021 8:21 pm
by magnussandstrom
Hi, I'm getting a date from a customer formatted with [weeknumber] (week of the year) and then [weekdaynumber] and want to convert it to european date format: dd-mm-yyyy
Example 1:
Input value: 07-5
Wanted result: 19-02-2021
Example 2:
Input value: 20-1
Wanted result: 17-05-2021
The input value is meta data from an XML inject with XML Pickup.
Any suggestions how I can do the conversion?
Re: Calculate date from [weeknumber]-[weekdaynumber]?
Posted: Wed Mar 10, 2021 9:07 am
by freddyp
You will have to use a script to do that. There is a package for NodeJS called moment that will do that. This is more or less what it could look like (NOT TESTED!).
Code: Select all
const moment = require("moment");
async function jobArrived(s, flowElement, job) {
moment.updateLocale("en", {
week: {
dow: 1, // First day of week is Monday
doy: 4, // First week of year must contain 4 January (7 + 1 - 4)
},
});
let dayOfWeeek = await flowElement.getPropertyStringValue("DayOfWeek").toString();
let weekOfYear = await flowElement.getPropertyStringValue("WeekOfYear").toString();
let date = moment().day(dayOfWeek).week(weekOfYear);
let DDMMYYYY = date.format("DD-MM-YYYY");
await job.setPrivateData("DDMMYY", DDMMYY);
await job.sendToSingle();
}
Without the locale settings the output is 12-02-2021 and not 19-02-2021.
Re: Calculate date from [weeknumber]-[weekdaynumber]?
Posted: Wed Mar 10, 2021 11:00 am
by jan_suhr
It can be even simpler
Code: Select all
const moment = require("moment");
var myDay = moment("2021-W05-4").format("YYYY-MM-DD");
console.log(myDay);
In this case the 05 and 4 will be replaced by variables or maybe just one variable for the 05-4
Re: Calculate date from [weeknumber]-[weekdaynumber]?
Posted: Wed Mar 10, 2021 11:47 am
by magnussandstrom
Thanks alot!