public override string ToString()
        {
            StringBuilder builder = new StringBuilder();

            if (Signum == -1)
            {
                builder.Append("-");
            }

            builder.Append("P");
            if (Years != 0)
            {
                builder.Append(Years.ToString());
                builder.Append("Y");
            }
            if (Months != 0)
            {
                builder.Append(Months.ToString());
                builder.Append("M");
            }
            if (Weeks != 0)
            {
                builder.Append(Weeks.ToString());
                builder.Append("W");
            }
            if (Days != 0 || (Years == 0 && Months == 0 && Weeks == 0 && Hours == 0 && Minutes == 0 && Seconds == 0 && FractionOfSecond == 0))
            {
                builder.Append(Days.ToString());
                builder.Append("D");
            }
            if (!(Hours == 0 && Minutes == 0 && Seconds == 0 && FractionOfSecond == 0))
            {
                builder.Append("T");
                if (Hours != 0)
                {
                    builder.Append(Hours.ToString());
                    builder.Append("H");
                }
                if (Minutes != 0)
                {
                    builder.Append(Minutes.ToString());
                    builder.Append("M");
                }
                if (Seconds != 0 || FractionOfSecond != 0M)
                {
                    builder.Append(Seconds.ToString());
                    if (FractionOfSecond != 0)
                    {
                        builder.Append(FractionOfSecond.ToString().Substring(1));
                    }
                    builder.Append("S");
                }
            }
            return(builder.ToString());
        }
Example #2
0
        public override String ToString()
        {
            StringBuilder sb = new StringBuilder("P");

            if (Years != 0)
            {
                sb.Append(Years.ToString());
                sb.Append("Y");
            }
            if (Months != 0)
            {
                sb.Append(Months.ToString());
                sb.Append("M");
            }
            if (Weeks != 0)
            {
                sb.Append(Weeks.ToString());
                sb.Append("W");
            }
            if (Days != 0)
            {
                sb.Append(Days.ToString());
                sb.Append("D");
            }
            if (Hours != 0 || Minutes != 0 || Seconds != 0 || Millis != 0)
            {
                sb.Append("T");
            }
            if (Hours != 0)
            {
                sb.Append(Hours.ToString());
                sb.Append("H");
            }
            if (Minutes != 0)
            {
                sb.Append(Minutes.ToString());
                sb.Append("M");
            }
            if (Seconds != 0 || Millis != 0)
            {
                sb.Append(Seconds.ToString());
                if (Millis != 0)
                {
                    sb.Append(".");
                    sb.Append(Millis.ToString("000"));
                }
                sb.Append("S");
            }
            return(sb.ToString());
        }