Showing posts with label Date. Show all posts
Showing posts with label Date. Show all posts

Tuesday, April 16, 2024

Calculate FromDate/ToDate based on Daily,Weelkly,Monthly in X++

boolean canRun = false;
TransDate fromDate, toDate, prevDate;
TransDate currentDate = DateTimeUtil::getSystemDate(DateTimeUtil::getUserPreferredTimeZone());
switch (Reporting.Schedule)
{
	case ReportingSchedule::Daily :
		fromDate = currentDate - 1;
		toDate = currentDate - 1;
		canRun = true;
		break;
	case ReportingSchedule::Weekly :
		PreferredLocale preferredLocale = (new xSession()).PreferredLocale();
		prevDate = HcmDateTimeUtil::calculateDateWithOffset(PeriodUnit::Day,7,false, currentDate);
		fromDate = DateTimeUtil::getStartOfWeekDate(preferredLocale, prevDate);
		toDate   = DateTimeUtil::getEndOfWeekDate(preferredLocale, prevDate);
		canRun   = dayOfWk(currentDate) == 1; //1 for monday
		break;
	case ReportingSchedule::Monthly :
		prevDate = prevMth(currentDate);
		fromDate = DateStartMth(prevDate);
		toDate   = endmth(prevDate);
		canRun   = dayOfMth(currentDate) == 1; //1 for first day of the month
		break;
}

Friday, April 30, 2021

Conversion from UTCDateTime to Date or Time in AX

Here is an example of correct conversion between UTCDateTime value and Date and Time value which is associated with user preferred time zone:
public static void testDateTimeConversion()
{
    utcDateTime dateTime;
    date dateInUserTimeZone;
    TimeOfDay timeInUserTimeZone;

    dateTime = DateTimeUtil::utcNow();

    dateInUserTimeZone = DateTimeUtil::date(DateTimeUtil::applyTimeZoneOffset(dateTime, DateTimeUtil::getUserPreferredTimeZone()));
    timeInUserTimeZone = DateTimeUtil::time(DateTimeUtil::applyTimeZoneOffset(dateTime, DateTimeUtil::getUserPreferredTimeZone()));

    dateTime = DateTimeUtil::newDateTime(dateInUserTimeZone, timeInUserTimeZone, DateTimeUtil::getUserPreferredTimeZone());
}

Table browser URL in D365FO

Critical Thinking icon icon by Icons8