DateStartMth and dateEndMth in ax 2012
1.public date dateStartMth(date _date)
2.client server public static date
dateEndMth(date transDate)
Date
and UTCDateTime interval for previous month
This
code calculates the first and last date of the previous month
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));
}
UtcDateTime
version of the same job
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));
}
When
working with dates for a range in a SQL select statement, you may be in need
for the first and the last day of a certain month. What at first seems a bit difficult to
calculate (not all the months have the same number of days for example), is
pretty easy to accomplish with the right tools.
The
first day of a month
You
can fool around with things like mkdate, so something like this:
static
void FirstOfMonth(Args _args)
{
TransDate TransDate=today();
TransDate FirstOfMth;
;
FirstOfMth=mkdate(1,mthofyr(TransDate),year(TransDate));
info(date2str(FirstOfMth,123,2,2,2,2,4));
}
But
there is a readily available function in the Global class, albeit somewhat
hidden:DateStartMth.
So
your code could read like this:
static
void FirstOfMonth(Args _args)
{
TransDate TransDate=today();
TransDate FirstOfMth;
;
FirstOfMth=DateStartMth(TransDate);
info(date2str(FirstOfMth,123,2,2,2,2,4));
}
The
last day of a month
Just
like with the first day of a month, we have a function that will do the
job
for us: endmth
This
function calculates the last date in the month of the date specified.
static
void LastOfMonth(Args _args)
{
TransDate TransDate=today();
TransDate LastOfMth;
;
LastOfMth=endmth(TransDate);
info(date2str(LastOfMth,123,2,2,2,2,4));
}
No comments:
Post a Comment