ACR_Time.ACR_Time.ScriptMain C# (CSharp) Method

ScriptMain() public method

public ScriptMain ( [ ScriptParameters, [ DefaultReturnCode ) : Int32
ScriptParameters [
DefaultReturnCode [
return System.Int32
        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;
        }