Quintiq file version 2.0
|
#parent: #root
|
Method GetLastMonth (
|
DateTime timestamp
|
) as DateTime id:Method_Kpi_GlobalState_GetLastMonth
|
{
|
#keys: '[136398.1.809533354]'
|
Body:
|
[*
|
// Returns the timestamp with its month reduced by 1.
|
// Takes year-crossing into account.
|
|
timezone := TimeZone::ObjectTimeZone( KpiTracker );
|
|
out := timestamp.StartOfMonth( timezone )
|
.AddAsPeriod( timezone, -Duration::Days( 1 ) )
|
.StartOfMonth( timezone )
|
.AddAsPeriod( timezone, timestamp - timestamp.StartOfMonth( timezone ) );
|
|
if( out.StartOfMonth( timezone ) = timestamp.StartOfMonth( timezone ) )
|
{
|
// When it is 29-31 March, the Feb do not have those dates, then just get Feb 28
|
out:= timestamp.StartOfMonth( timezone ).AddAsPeriod( timezone, -Duration::Days( 1 ) );
|
}
|
|
return out;
|
*]
|
}
|