The following code example shows a few simple methods you can use to add and subtract from a datetime variable.
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
namespace Microsoft.Crm.Platform.Workflow
{
public class BuildIn
{
public DateTime AddDateTime(DateTime dt, int years, int months,
int days, int hours, int minutes )
{
return dt.AddYears(years).AddMonths(months).AddDays(days)
.AddHours(hours).AddMinutes(minutes);
} public DateTime SubtractDateTime(DateTime dt, int years, int months,
int days, int hours, int minutes )
{
return dt.AddYears(-years).AddMonths(-months)
.AddDays(-days).AddHours(-hours).AddMinutes(-minutes);
}
}
}
The following shows an example workflow configuration file that corresponds to the sample code.
<workflow.config xmlns="http://microsoft.com/mscrm/workflow/" >
<methods>
<method name="Add DateTime"
assembly="Microsoft.Crm.Platform.WorkflowAssembly.dll"
typename="Microsoft.Crm.Platform.Workflow.BuildIn"
methodname="AddDateTime"
group="Date Time Functions">
<parameter name="Date Time" datatype="datetime"/>
<parameter name="Years" datatype="integer" default="0"/>
<parameter name="Months" datatype="integer" default="0"/>
<parameter name="Days" datatype="integer" default="0"/>
<parameter name="Hours" datatype="integer" default="0"/>
<parameter name="Minutes" datatype="integer" default="0"/>
<result datatype="datetime"/>
</method>
<method name="Subtract DateTime"
assembly="Microsoft.Crm.Platform.WorkflowAssembly.dll"
typename="Microsoft.Crm.Platform.Workflow.BuildIn"
methodname="SubtractDateTime"
group="Date Time Functions">
<parameter name="Date Time" datatype="datetime"/>
<parameter name="Years" datatype="integer" default="0"/>
<parameter name="Months" datatype="integer" default="0"/>
<parameter name="Days" datatype="integer" default="0"/>
<parameter name="Hours" datatype="integer" default="0"/>
<parameter name="Minutes" datatype="integer" default="0"/>
<result datatype="datetime"/>
</method>
<method name="Execute"
assembly="Microsoft.Crm.Platform.BulkOperationControlAssembly.dll"
typename="BulkOperationControlService"
methodname="Execute"
group="BulkOperationControl"
isvisible="0"
timeout="7200">
<parameter name="Caller" datatype="caller"/>
<parameter name="BulkOperationId" datatype="lookup"
entityname="bulkoperation"/>
<result datatype="string"/>
</method>
</methods>
</workflow.config>