Quintiq file version 2.0
|
#parent: #root
|
Method GetLastMonth (
|
DateTime timestamp
|
) as DateTime id:Method_GlobalStateKpiTracker_GetLastMonth
|
{
|
#keys: '[136398.1.842173950]'
|
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, if Feb then get Feb 28.
|
out := timestamp.StartOfMonth( timezone ).AddAsPeriod( timezone, -Duration::Days( 1 ) );
|
}
|
|
return out;
|
*]
|
}
|