コード例 #1
0
ファイル: timespanformat.cs プロジェクト: wwkkww1983/ZJCredit
 internal static TimeSpanFormat.FormatLiterals InitInvariant(bool isNegative)
 {
     TimeSpanFormat.FormatLiterals formatLiterals = new TimeSpanFormat.FormatLiterals();
     formatLiterals.literals         = new string[6];
     formatLiterals.literals[0]      = isNegative ? "-" : string.Empty;
     formatLiterals.literals[1]      = ".";
     formatLiterals.literals[2]      = ":";
     formatLiterals.literals[3]      = ":";
     formatLiterals.literals[4]      = ".";
     formatLiterals.literals[5]      = string.Empty;
     formatLiterals.AppCompatLiteral = ":.";
     formatLiterals.dd = 2;
     formatLiterals.hh = 2;
     formatLiterals.mm = 2;
     formatLiterals.ss = 2;
     formatLiterals.ff = 7;
     return(formatLiterals);
 }
コード例 #2
0
ファイル: timespanformat.cs プロジェクト: wwkkww1983/ZJCredit
        private static string FormatStandard(TimeSpan value, bool isInvariant, string format, TimeSpanFormat.Pattern pattern)
        {
            StringBuilder sb   = StringBuilderCache.Acquire(16);
            int           num1 = (int)(value._ticks / 864000000000L);
            long          num2 = value._ticks % 864000000000L;

            if (value._ticks < 0L)
            {
                num1 = -num1;
                num2 = -num2;
            }
            int n1 = (int)(num2 / 36000000000L % 24L);
            int n2 = (int)(num2 / 600000000L % 60L);
            int n3 = (int)(num2 / 10000000L % 60L);
            int n4 = (int)(num2 % 10000000L);

            TimeSpanFormat.FormatLiterals formatLiterals;
            if (isInvariant)
            {
                formatLiterals = value._ticks >= 0L ? TimeSpanFormat.PositiveInvariantFormatLiterals : TimeSpanFormat.NegativeInvariantFormatLiterals;
            }
            else
            {
                formatLiterals = new TimeSpanFormat.FormatLiterals();
                formatLiterals.Init(format, pattern == TimeSpanFormat.Pattern.Full);
            }
            if (n4 != 0)
            {
                n4 = (int)((long)n4 / (long)Math.Pow(10.0, (double)(7 - formatLiterals.ff)));
            }
            sb.Append(formatLiterals.Start);
            if (pattern == TimeSpanFormat.Pattern.Full || num1 != 0)
            {
                sb.Append(num1);
                sb.Append(formatLiterals.DayHourSep);
            }
            sb.Append(TimeSpanFormat.IntToString(n1, formatLiterals.hh));
            sb.Append(formatLiterals.HourMinuteSep);
            sb.Append(TimeSpanFormat.IntToString(n2, formatLiterals.mm));
            sb.Append(formatLiterals.MinuteSecondSep);
            sb.Append(TimeSpanFormat.IntToString(n3, formatLiterals.ss));
            if (!isInvariant && pattern == TimeSpanFormat.Pattern.Minimum)
            {
                int num3;
                for (num3 = formatLiterals.ff; num3 > 0 && n4 % 10 == 0; --num3)
                {
                    n4 /= 10;
                }
                if (num3 > 0)
                {
                    sb.Append(formatLiterals.SecondFractionSep);
                    sb.Append(n4.ToString(DateTimeFormat.fixedNumberFormats[num3 - 1], (IFormatProvider)CultureInfo.InvariantCulture));
                }
            }
            else if (pattern == TimeSpanFormat.Pattern.Full || n4 != 0)
            {
                sb.Append(formatLiterals.SecondFractionSep);
                sb.Append(TimeSpanFormat.IntToString(n4, formatLiterals.ff));
            }
            sb.Append(formatLiterals.End);
            return(StringBuilderCache.GetStringAndRelease(sb));
        }