public Int32 ScriptMain([In] object[] ScriptParameters, [In] Int32 DefaultReturnCode)
{
int Value = (int)ScriptParameters[0]; // ScriptParameterTypes[0] is typeof(int)
int retValue = -1;
DateTime startTime = new DateTime(2012, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime currentTime = DateTime.Now.ToUniversalTime();
TimeSpan differenceInTime = currentTime - startTime;
switch (Value)
{
case ACR_TIME_SECONDS_SINCE_START:
{
retValue = (int)differenceInTime.TotalSeconds;
break;
}
case ACR_TIME_MINUTES_SINCE_START:
{
retValue = (int)differenceInTime.TotalMinutes;
break;
}
case ACR_TIME_HOURS_SINCE_START:
{
retValue = (int)differenceInTime.TotalHours;
break;
}
case ACR_TIME_DAYS_SINCE_START:
{
retValue = (int)differenceInTime.TotalDays;
break;
}
case ACR_TIME_MONTHS_SINCE_START:
{
retValue = DateTime.Now.Month +
(DateTime.UtcNow.Year - 2012) * 12;
break;
}
case ACR_TIME_YEARS_SINCE_START:
{
retValue = DateTime.UtcNow.Year - 2012;
break;
}
case ACR_TIME_SECONDS_IN_UTC:
{
retValue = DateTime.UtcNow.Second;
break;
}
case ACR_TIME_MINUTES_IN_UTC:
{
retValue = DateTime.UtcNow.Minute;
break;
}
case ACR_TIME_HOURS_IN_UTC:
{
retValue = DateTime.UtcNow.Hour;
break;
}
case ACR_TIME_DAYS_IN_UTC:
{
retValue = DateTime.UtcNow.Day;
break;
}
case ACR_TIME_MONTHS_IN_UTC:
{
retValue = DateTime.UtcNow.Month;
break;
}
case ACR_TIME_YEARS_IN_UTC:
{
retValue = DateTime.UtcNow.Year;
break;
}
}
return retValue;
}