There is nothing worse than a bad date... or a bad date problem in AX. I recently needed to perform some date verification in a batch for the previous month. I started to play around with some conversions but luckily before I wasted a whole day came upon this code snippet from another AX blogger.**
It works like a charm!
For date type:
static void EP_dateMonthInterval(Args _args) { date fromDate; date toDate; date baseDate = systemDateGet(); ; toDate = dateStartMth(baseDate) - 1; fromDate = dateStartMth(toDate); info(strFmt("%1 - %2", fromDate, toDate)); }
For UTC Date type
static void EP_UtcdateMonthInterval(Args _args) { UtcDateTime fromDate; UtcDateTime toDate; UtcDateTime baseDate = DateTimeUtil::utcNow(); ; // Remove this month number of days. toDate = DateTimeUtil::addDays( baseDate, -(DateTimeUtil::day(baseDate) -1)); // Add the rest of this days time minus one second. toDate = DateTimeUtil::addSeconds( toDate, -(DateTimeUtil::time(toDate)+1)); // Remove the number of days we are on in // the previous month and add one second to // get to the first of the month. fromDate = DateTimeUtil::addSeconds( DateTimeUtil::addDays( toDate, -(DateTimeUtil::day(toDate))), 1); info(strFmt("%1 - %2", fromDate, toDate)); }
**Reference source: http://fourone.se/blog/2012/11/01/date-and-utcdatetime-interval-for-previous-month/
No comments:
Post a Comment